<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[pip Trends Newsletter]]></title><description><![CDATA[A newsletter to stay updated about Python & its ecosystem]]></description><link>https://newsletter.piptrends.com</link><image><url>https://substackcdn.com/image/fetch/$s_!6GdF!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2844f716-0843-40cc-9caf-b526473031a0_300x300.png</url><title>pip Trends Newsletter</title><link>https://newsletter.piptrends.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 18 Apr 2026 01:12:02 GMT</lastBuildDate><atom:link href="https://newsletter.piptrends.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[bavanti.com]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[piptrends@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[piptrends@substack.com]]></itunes:email><itunes:name><![CDATA[Ashok Tankala]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ashok Tankala]]></itunes:author><googleplay:owner><![CDATA[piptrends@substack.com]]></googleplay:owner><googleplay:email><![CDATA[piptrends@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ashok Tankala]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The State of Python 2025, Python Type Checkers, Loguru and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/the-state-of-python-2025-python-type</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/the-state-of-python-2025-python-type</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 06 Sep 2025 03:30:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4efda888-6d09-44b2-941b-584f3d6f6dd7_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.youtube.com/playlist?list=PLQYPYhKQVTveQNoZ5B6wMx2XveEBJPSUk">PyCon Sweden 2024</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://blog.jetbrains.com/pycharm/2025/08/the-state-of-python-2025/">The State of Python 2025</a></h4><p>Michael Kennedy reviewed over 30,000 responses from the eighth annual Python Developers Survey and shared the key trends, insights and takeaways in this post.</p><h6># Michael Kennedy</h6><h4><a href="https://blog.appsignal.com/2025/08/20/how-to-use-redis-with-python.html">How to Use Redis with Python</a></h4><p>Many of us use Redis strings for caching, but Redis actually supports several other data types like Hashes, Lists, Sets, Bitmaps, HyperLogLogs, etc. Each of these comes with its own commands: for example, <code>HSET</code>, <code>HGET</code> and <code>HDEL</code> for hashes, or <code>LPUSH</code>, <code>LGET</code> and <code>LREM</code> for lists. In this article, Federico Trotta explained some of these data types and showed how to use them with examples.</p><h6># Federico Trotta</h6><h4><a href="https://ponderinglion.dev/posts/custom-parametrization-scheme-with-pytest/">Custom parametrization scheme with Pytest</a></h4><p>Parametrizing tests makes it easy to run them across multiple scenarios. But the default syntax has one drawback, it&#8217;s hard to tell which parameters belong to which scenario just by looking at the logs. In this article, Christos Liontos shared a clever solution using a custom hook to tackle this problem.</p><h6># Christos Liontos</h6><h4><a href="https://sinon.github.io/future-python-type-checkers/">How Well Do New Python Type Checkers Conform? A Deep Dive into Ty, Pyrefly, and Zuban</a></h4><p>Python&#8217;s type checking space has been very active recently. Three new tools - <code>Ty, Pyrefly and Zuban</code>, have emerged as promising options. In this article, Rob Hand reviewed the popular type checkers, shared highlights of these new tools, shared Conformance Suite analysis results of them and shared the gap between conformance and real-world usage.</p><h6># Rob Hand</h6><h4><a href="https://www.dash0.com/guides/python-logging-with-loguru">Production-Grade Python Logging Made Easier with Loguru</a></h4><p>Loguru is one of popular logging libraries, many say it&#8217;s what Python&#8217;s default logging should have been. If you&#8217;d like to learn how to use it, check out this article by Ayooluwa Isaiah. He covered everything from Loguru&#8217;s philosophy to how you can bring your Python logs into an observability pipeline.</p><h6># Ayooluwa Isaiah</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://github.com/thonny/thonny/">Thonny</a></strong> - Python IDE for beginners</p><p><strong><a href="https://piptrends.com/package/cosmic-ray">Cosmic Ray</a></strong> - Mutation testing</p><p><strong><a href="https://piptrends.com/package/tach">Tach</a></strong> - A Python tool to maintain a modular package architecture.</p><p><strong><a href="https://piptrends.com/package/expression">Expression</a></strong> - Practical functional programming for Python 3.10+</p><p><strong><a href="https://github.com/axorax/tkforge">TkForge</a></strong> - Drag &amp; drop in Figma to create a Python GUI with ease</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/pydantic/pydantic-ai/releases/tag/v1.0.0">pydantic-ai 1.0.0</a></strong> - Agent Framework / shim to use Pydantic with LLMs</p><p><strong><a href="https://github.com/deepset-ai/haystack-experimental/releases/tag/v0.13.0">haystack-experimental 0.13.0</a></strong> - Experimental components and features for the Haystack LLM framework</p><p><strong><a href="https://github.com/lancedb/lancedb/releases/tag/python-v0.25.0">lancedb 0.25.0</a></strong> - Developer-friendly, embedded retrieval engine for multimodal AI. Search More; Manage Less</p><p><strong><a href="https://github.com/getzep/graphiti/releases">graphiti-core 0.20.x</a></strong> - A temporal graph building library</p><p><strong><a href="https://github.com/pytorch/ao/releases/tag/v0.13.0-rc8">torchao 0.13.0</a></strong> - Package for applying ao techniques to GPU models</p><p><strong><a href="https://github.com/astronomer/dag-factory/releases/tag/v1.0.0">dag-factory 1.0.0</a></strong> - Dynamically build Apache Airflow DAGs from YAML files</p><p><strong><a href="https://github.com/certbot/certbot/releases/tag/v5.0.0">certbot-dns-cloudflare 5.0.0</a></strong> - Cloudflare DNS Authenticator plugin for Certbot</p><p><strong><a href="https://github.com/facebook/pyrefly/releases/tag/0.31.0">pyrefly 0.31.0</a></strong> - A fast Python type checker written in Rust</p><p><strong><a href="https://github.com/ToucanToco/fastexcel/releases">fastexcel 0.15.x</a></strong> - A fast excel file reader for Python, written in Rust</p><p><strong><a href="https://github.com/exasol/pyexasol/releases/tag/1.0.0">pyexasol 1.0.0</a></strong> - Exasol python driver with extra features</p><p><strong><a href="https://github.com/huggingface/trl/releases">trl 0.22.x</a></strong> - Train transformer language models with reinforcement learning</p><p><strong><a href="https://github.com/roboflow/inference/releases">inference-cli 0.54.x</a></strong> - With no prior knowledge of machine learning or device-specific deployment, you can deploy a computer vision model to a range of devices and environments using Roboflow Inference</p><p><strong><a href="https://github.com/LucaCanali/sparkMeasure/releases/tag/v0.26">sparkmeasure 0.26.0</a></strong> - Python API for sparkMeasure, a tool for performance troubleshooting of Apache Spark workloads</p><p><strong><a href="https://github.com/huggingface/tokenizers/releases/tag/v0.22.0">tokenizers 0.22.0</a></strong> - &#128165; Fast State-of-the-Art Tokenizers optimized for Research and Production</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Python Documentary, pytest’s parametrize, Litestar, Expressions in Pandas and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/python-documentary-pytests-parametrize</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/python-documentary-pytests-parametrize</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 30 Aug 2025 03:30:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c67c626b-186e-46b2-8151-4eba90703b10_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.youtube.com/watch?v=GfH4QL4VqJ0">Python: The Documentary | An origin story</a></h4><h4><a href="https://pyfound.blogspot.com/2025/08/pypistats-org-is-now-operated-by-the-psf.html">pypistats.org is now operated by the Python Software Foundation</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://nedbatchelder.com/blog/202508/starting_with_pytests_parametrize.html">Starting with pytest&#8217;s parametrize</a></h4><p>If you&#8217;re writing test cases, I strongly suggest using pytest&#8217;s <code>parametrize</code> feature. It helps you save both time and code. In this article, Ned Batchelder explained how to use it with a clear example.</p><h6># Ned Batchelder</h6><h4><a href="https://www.b-list.org/weblog/2025/aug/06/litestar/">Litestar is worth a look</a></h4><p><code>Litestar</code> is a Python web framework that&#8217;s built with async support and type hints in mind. You might think, <em>&#8220;But we already have FastAPI.&#8221;</em> That&#8217;s true, but James Bennett shared some good reasons why this framework is worth exploring.</p><h6># James Bennett</h6><h4><a href="https://github.com/santoshvandari/Python-Developer-Roadmap">Proper Guided Roadmap to learn the Python programming language</a></h4><p>A complete guide to learning Python from beginner to advanced, created by Santosh Bhandari.</p><h6># Santosh Bhandari</h6><h4><a href="https://www.reddit.com/r/Python/comments/1n0ng7f/whats_your_favorite_python_trick_or_lesser_known/">Favourite Python tricks or lesser-known features</a></h4><p>In this Reddit post, people shared some really cool Python features with examples like <code>itertools.batched</code>, the walrus operator, <code>python -m http.server</code>, <code>defaultdict</code>, <code>functools.partial</code> and more.</p><h4><a href="https://labs.quansight.org/blog/pandas_expressions">Expressions are coming to pandas!</a></h4><p>Pandas was introduced 17 years ago and quickly became the go-to tool for data science in Python. Over time, new libraries appeared, building on pandas&#8217; ideas while fixing some of its limitations. Now, pandas has come full circle with a new syntax inspired by those newer libraries. In this article, Marco Gorelli explains why this change happened and how you can use it.</p><h6># Marco Gorelli</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://github.com/benavlabs/FastAPI-boilerplate">FastAPI boilerplate</a></strong> - An extendable async API using FastAPI, Pydantic V2, SQLAlchemy 2.0, PostgreSQL and Redis</p><p><strong><a href="https://piptrends.com/package/mutmut">mutmut</a></strong> - Mutation testing for Python</p><p><strong><a href="https://piptrends.com/package/cruft">cruft</a></strong> - Allows you to maintain all the necessary cruft for packaging and building projects separate from the code you intentionally write. Built on-top of CookieCutter</p><p><strong><a href="https://piptrends.com/package/pyee">pyee</a></strong> - A rough port of Node.js's EventEmitter to Python with a few tricks of its own</p><p><strong><a href="https://piptrends.com/package/pyxel">Pyxel</a></strong> - A retro game engine for Python</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/bufbuild/protovalidate-python/releases/tag/v0.15.0">protovalidate 0.15.0</a></strong> - Protocol Buffer Validation for Python</p><p><strong><a href="https://github.com/onnx/onnx/releases/tag/v1.19.0">onnx 1.19.0</a></strong> - Open Neural Network Exchange</p><p><strong><a href="https://github.com/Salamek/cron-descriptor/releases">cron-descriptor 2.0.x</a></strong> - A Python library that converts cron expressions into human readable strings</p><p><strong><a href="https://rpaframework.org/releasenotes.html#aug-2025">rpaframework 31.0.0</a></strong> - A collection of tools and libraries for RPA</p><p><strong><a href="https://github.com/BerriAI/litellm/releases">litellm 1.76.0</a></strong> - Library to easily interface with LLM API providers</p><p><strong><a href="https://github.com/microsoft/onnxscript/releases/tag/v0.4.0">onnxscript 0.4.0</a></strong> - Naturally author ONNX functions and models using a subset of Python</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[4 Text Similarity Tools, 5 simple guidelines for writing recursive functions and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/4-text-similarity-tools-5-simple</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/4-text-similarity-tools-5-simple</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 23 Aug 2025 03:30:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b79ed328-2db3-4e51-afc4-b60098f9fd13_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://blog.pypi.org/posts/2025-08-07-wheel-archive-confusion-attacks/">Preventing ZIP parser confusion attacks on Python package installers</a></h4><h4><a href="https://www.python.org/downloads/release/python-3140rc2/">Python 3.14.0rc2 released</a></h4><p>The next pre-release of Python 3.14 will be the final release candidate, 3.14.0rc3, scheduled for 2025-09-16; the official release of 3.14.0 is scheduled for Tuesday, 2025-10-07</p><h4><a href="https://www.python.org/downloads/release/python-3137/">Python 3.13.7 released</a></h4><p>This is the seventh maintenance release of Python 3.13</p><h4><a href="https://www.python.org/nominations/elections/2025-python-software-foundation-board/nominees/">Nominees for 2025 PSF Board Election Announced</a></h4><h4><a href="https://github.com/google/pytype">The last supported Python version for Pytype will be 3.12</a></h4><h4><a href="https://seattle.pydata.org/">PyData Seattle CFP is open</a></h4><h4><a href="https://peps.python.org/pep-0728/">[Accepted] PEP 728 &#8211; TypedDict with Typed Extra Items</a></h4><h4><a href="https://peps.python.org/pep-0750/">[Final] PEP 750 &#8211; Template Strings</a></h4><h4><a href="https://peps.python.org/pep-0792/">[Final] PEP 792 &#8211; Project status markers in the simple index</a></h4><h4><a href="https://blog.pypi.org/posts/2025-08-18-preventing-domain-resurrections/">PyPI now checks for expired domains to prevent domain resurrection attacks</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://inventwithpython.com/blog/leap-of-faith.html">The Recursive Leap of Faith, Explained</a></h4><p>Al Sweigart wrote an amazing article on writing recursive functions, breaking it down into five simple guidelines. If recursion feels tricky, his approach makes it much easier to understand and apply in real-world problems.</p><h6># Al Sweigart</h6><h4><a href="https://codecut.ai/text-similarity-fuzzy-matching-guide/">4 Text Similarity Tools: When Regex Isn't Enough</a></h4><p>Khuyen Tran wrote a nice article on <strong>text similarity in Python</strong>. She covered multiple approaches: Regex, <code>difflib</code>, RapidFuzz, and Sentence Transformers. She shared examples for each and explained <strong>when to use which approach</strong>.</p><h6># Khuyen Tran</h6><h4><a href="https://www.pythonmorsels.com/prefixes-and-suffixes/">Checking for string prefixes and suffixes in Python</a></h4><p>Two often-overlooked Python string methods are <code>startswith()</code> and <code>removeprefix()</code>. Trey Hunner covered them with nice examples. Remembering these can help you write cleaner and more readable code.</p><h6># Trey Hunner</h6><div id="youtube2-F09EK4ztG34" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;F09EK4ztG34&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/F09EK4ztG34?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The Python package ecosystem is huge and sometimes it&#8217;s tough to discover the right tools when you need them. That&#8217;s why it&#8217;s always a good idea to stay updated on useful packages. In this video, Arjan Egges covered <strong>15 powerful but often overlooked packages</strong> that can help you write cleaner code and boost performance, with practical real-world examples.</p><h6># Arjan Egges</h6><h4><a href="https://www.upgrad.com/blog/exciting-deep-learning-project-ideas-for-beginners/">Exciting 40+ Projects on Deep Learning to Enhance Your Portfolio in 2025</a></h4><p>Many freshers often end up building the same set of projects, which doesn&#8217;t always help them stand out. If you&#8217;re a fresher and want to try something different to test and showcase your skills, check out this article by Kechit Goyal. He shared 40+ project ideas that can help you learn, practice and build a stronger portfolio.</p><h6># Kechit Goyal</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/financetoolkit">FinanceToolkit</a></strong> - Transparent and Efficient Financial Analysis</p><p><strong><a href="https://piptrends.com/package/xonsh">xonsh</a></strong> - Python-powered shell. Full-featured and cross-platform</p><p><strong><a href="https://piptrends.com/package/cappa">Cappa</a></strong> - Declarative CLI argument parser</p><p><strong><a href="https://github.com/awesomedata/awesome-public-datasets">Awesome Public Datasets</a></strong> - A topic-centric list of HQ open datasets</p><p><strong><a href="https://piptrends.com/package/yt-dlp">yt-dlp</a></strong> - A feature-rich command-line audio/video downloader</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/uriyyo/fastapi-pagination/releases/tag/0.14.0">fastapi-pagination 0.14.0</a></strong> - FastAPI pagination</p><p><strong><a href="https://github.com/neuralmagic/compressed-tensors/releases/tag/0.11.0">compressed-tensors 0.11.0</a></strong> - Library for utilization of compressed safetensors of neural network models</p><p><strong><a href="https://github.com/browser-use/browser-use/releases/tag/0.6.0">browser-use 0.6.0</a></strong> - Make websites accessible for AI agents</p><p><strong><a href="https://github.com/mlflow/mlflow/releases/tag/v3.3.0">mlflow 3.3.0</a></strong> - MLflow is an open source platform for the complete machine learning lifecycle</p><p><strong><a href="https://github.com/langfuse/langfuse/releases/tag/v3.100.0">langfuse 3.100.0</a></strong> - A client library for accessing langfuse</p><p><strong><a href="https://github.com/huggingface/diffusers/releases/tag/v0.35.0">diffusers 0.35.0</a></strong> - State-of-the-art diffusion in PyTorch and JAX</p><p><strong><a href="https://github.com/networktocode/ntc-templates/releases/tag/v8.0.0">ntc-templates 8.0.0</a></strong> - TextFSM Templates for Network Devices, and Python wrapper for TextFSM's CliTable</p><p><strong><a href="https://github.com/indygreg/python-zstandard/releases/tag/0.24.0">zstandard 0.24.0</a></strong> - Zstandard bindings for Python</p><p><strong><a href="https://github.com/hgrecco/pint/blob/master/CHANGES">pint 0.25.0</a></strong> - Physical quantities module</p><p><strong><a href="https://github.com/stanfordnlp/dspy/releases/tag/3.0.0">dspy 3.0.0</a></strong> - The framework for programming&#8212;not prompting&#8212;language models</p><p><strong><a href="https://github.com/executablebooks/markdown-it-py/releases/tag/v4.0.0">markdown-it-py 4.0.0</a></strong> - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins &amp; high speed</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[iterators, iterables, dunder methods, Agents Towards Production and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/iterators-iterables-dunder-methods</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/iterators-iterables-dunder-methods</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sun, 10 Aug 2025 09:49:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3afaaf11-3009-4976-a466-d1fadb5e8fb9_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://pyfound.blogspot.com/2025/08/the-psf-has-paused-our-grants-program.html">The PSF has paused our Grants Program</a></h4><p>The PSF has temporarily paused its Grants Program after hitting the 2025 budget cap earlier than expected.</p><h4><a href="https://2025.pyconuk.org/schedule/">PyCon UK 2025 Schedule</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://nedbatchelder.com/blog/202507/2048_iterators_and_iterables.html">2048: iterators and iterables</a></h4><p>Iterable and iterator are not the same, though they&#8217;re often confused. In this article, Ned Batchelder explained the difference with a simple example and a great analogy: the pages of a book are an iterable; a bookmark is an iterator.</p><h6># Ned Batchelder</h6><h4><a href="https://www.pythonmorsels.com/avoid-dunder-methods/">Don't call dunder methods</a></h4><p>Dunder methods (like <code>__init__</code>, <code>__str__</code>, etc.) are low-level hooks used by the Python interpreter to enable certain behaviours. While they&#8217;re powerful, using them directly is often unnecessary and can lead to confusing code. In this article, Trey Hunner explained why it&#8217;s best to avoid them unless absolutely needed, with clear examples and shared alternatives.</p><h6># Trey Hunner</h6><h4><a href="https://www.codeflash.ai/post/why-pythons-deepcopy-can-be-so-slow-and-how-to-avoid-it">Why Python&#8217;s deepcopy Can Be So Slow (and How to Avoid It)</a></h4><p>Python&#8217;s <code>copy.deepcopy()</code> is powerful but very slow and memory-heavy. If you're considering using it, check out this article by Saurabh Misra. He explained why it's often overkill and shared alternatives - like preferring shallow copies, copying only what's needed and other tips to make your code faster and more efficient.</p><h6># Saurabh Misra</h6><h4><a href="https://crawlbase.com/blog/how-to-use-python-pandas-to-analyze-data/">Using Python Pandas to Clean and Analyze Scraped Data</a></h4><p>If you work with data, you probably know that 95% of the job is cleaning and prepping it. In this article, Hassan Rehan highlighted the importance of data cleaning and showed how to use Pandas for processing, along with key techniques to clean and analyse scraped data effectively.</p><h6># Hassan Rehan</h6><h4><a href="https://github.com/NirDiamant/agents-towards-production">Agents Towards Production</a></h4><p>Nir Diamant&#8217;s GitHub repository features 30+ in-depth tutorials for building AI agents. He covered everything from stateful workflows, vector memory and real-time web search APIs to Docker deployment, FastAPI endpoints, security guardrails, GPU scaling, browser automation, fine-tuning, multi-agent coordination, observability, evaluation and even UI development. A good resource for anyone building serious AI systems.</p><h6># Nir Diamant</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/dynaconf">dynaconf</a></strong> - The dynamic configurator for your Python Project</p><p><strong><a href="https://piptrends.com/package/pyro5">Pyro5</a></strong> - Remote object communication library</p><p><strong><a href="https://piptrends.com/package/rio-ui">Rio</a></strong> - Build modern Websites and Apps just with Python</p><p><strong><a href="https://piptrends.com/package/pycryptodome">PyCryptodome</a></strong> - Cryptographic library for Python</p><p><strong><a href="https://piptrends.com/package/ytsage">YTSage</a></strong> - Modern YouTube downloader with a clean PySide6 interface</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://nvidia.github.io/cuda-python/cuda-bindings/13.0.0/release/13.0.0-notes.html">cuda-bindings 13.0.0</a></strong> - Python bindings for CUDA</p><p><strong><a href="https://github.com/pydantic/pydantic-ai/releases/tag/v0.6.0">pydantic-ai 0.6.0</a></strong> - Agent Framework / shim to use Pydantic with LLMs</p><p><strong><a href="https://github.com/pytorch/vision/releases/tag/v0.23.0">torchvision 0.23.0</a></strong> - image and video datasets and models for torch deep learning</p><p><strong><a href="https://github.com/lexiforest/curl_cffi/releases/tag/v0.13.0">curl-cffi 0.13.0</a></strong> - libcurl ffi bindings for Python, with impersonation support</p><p><strong><a href="https://github.com/huggingface/trl/releases/tag/v0.21.0">trl 0.21.0</a></strong> - Train transformer language models with reinforcement learning</p><p><strong><a href="https://github.com/pyvista/pyvista/releases/tag/v0.46.0">pyvista 0.46.0</a></strong> - Easier Pythonic interface to VTK</p><p><strong><a href="https://github.com/bufbuild/protovalidate-python/releases/tag/v0.14.0">protovalidate 0.14.0</a></strong> - Protocol Buffer Validation for Python</p><p><strong><a href="https://github.com/mlflow/mlflow/releases/tag/v3.2.0">mlflow 3.2.0</a></strong> - An open source platform for the complete machine learning lifecycle</p><p><strong><a href="https://github.com/redis/redis-py/releases/tag/v6.3.0">redis 6.3.0</a></strong> - Python client for Redis database and key-value store</p><p><strong><a href="https://github.com/huggingface/peft/releases/tag/v0.17.0">peft 0.17.0</a></strong> - Parameter-Efficient Fine-Tuning (PEFT)</p><p><strong><a href="https://github.com/SciTools/cartopy/releases/tag/v0.25.0">cartopy 0.25.0</a></strong> - A Python library for cartographic visualizations with Matplotlib</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Building Autonomous Systems, Python Gotcha and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/building-autonomous-systems-python</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/building-autonomous-systems-python</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 02 Aug 2025 08:14:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc29b9f1-6f0e-4c67-afa0-1ba960fd2bfa_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://blog.pypi.org/posts/2025-07-28-pypi-phishing-attack/">PyPI Users Email Phishing Attack</a></h4><p>If you&#8217;ve published projects on PyPI and included your email in the package metadata, watch out for phishing emails titled <strong>"[PyPI] Email verification"</strong> coming from <strong><a href="mailto:noreply@pypj.org">noreply@pypj.org</a></strong> (note the lowercase <strong>j</strong> in the domain, not the official PyPI domain). Mike Fiedler has shared a preliminary report on this issue. Stay cautious!</p><h6># Mike Fiedler</h6><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://www.digitalocean.com/community/conceptual-articles/build-autonomous-systems-agentic-ai">Building Autonomous Systems: A Guide to Agentic AI Workflows</a></h4><p>Agentic AI Workflows - systems that can reason, plan and act autonomously are becoming a hot topic. Unlike traditional hardcoded orchestration, these workflows operate across multiple steps, tools and platforms. If you want a solid introduction, check out this article by Adrien Payong and Shaoni Mukherjee, where they explained the core concepts, tools and frameworks behind it.</p><h6># Adrien Payong &amp; Shaoni Mukherjee</h6><h4><a href="https://andrewwegner.com/python-gotcha-logging-uncaught-exception.html">Python Gotcha: Logging an uncaught exception</a></h4><p>Unhandled exceptions can be confusing, especially when there's no clear stack trace. Andrew Wegner shared a neat solution using <code>sys.excepthook</code> to make debugging easier and more transparent.</p><h6># Andrew Wegner</h6><h4><a href="https://www.kdnuggets.com/10-surprising-things-you-can-do-with-pythons-collections-module">10 Surprising Things You Can Do with Python&#8217;s collections Module</a></h4><p>The <code>collections</code> module offers powerful alternatives to Python's built-in containers like <code>dict</code>, <code>list</code>, <code>set</code>, and <code>tuple</code>. These can simplify code, improve readability and even boost performance. In this article, Matthew Mayo shared 10 amazing examples to help you understand how to use them effectively.</p><h6># Matthew Mayo</h6><div id="youtube2-j5f2EQf5hkw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;j5f2EQf5hkw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/j5f2EQf5hkw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Tim Ruscica shared an amazing tutorial on building MCP servers in Python by creating a simple MCP server for user notes access. He went beyond the basics and used Stytch for handling authorization instead of traditional access tokens.</p><h6># Tim Ruscica</h6><h4><a href="https://realpython.com/debug-python-errors/">How to Debug Common Python Errors</a></h4><p>If you&#8217;re not comfortable reading tracebacks or don&#8217;t know how to debug, building solid software becomes tough. In this beginner-friendly article, Theresa Obamwonyi explained the basics of tracebacks and debugging - perfect for anyone new to this topic.</p><h6># Theresa Obamwonyi</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/marimo">marimo</a></strong> - A library for making reactive notebooks and apps</p><p><strong><a href="https://piptrends.com/package/toolz">Toolz</a></strong> - List processing tools and functional utilities</p><p><strong><a href="https://piptrends.com/package/uplink">Uplink</a></strong> - A Declarative HTTP Client for Python</p><p><strong><a href="https://piptrends.com/package/chameleon_flask">chameleon-flask</a></strong> - Adds integration of the Chameleon template language to Flask and Quart</p><p><strong><a href="https://piptrends.com/package/diffusers">Diffusers</a></strong> - State-of-the-art diffusion in PyTorch and JAX</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/run-llama/llama_index/releases/tag/v0.13.0">llama-index 0.13.0</a></strong> - Interface between LLMs and your data</p><p><strong><a href="https://github.com/pyocd/pyOCD/releases/tag/v0.38.0">pyOCD 0.38.0</a></strong> - Cortex-M debugger for Python</p><p><strong><a href="https://pip.pypa.io/en/stable/news/#v25-2">pip 25.2.0</a></strong> - The Python package installer</p><p><strong><a href="https://github.com/jorenham/optype/releases/tag/v0.13.0">optype 0.13.0</a></strong> - Building blocks for precise &amp; flexible type hints</p><p><strong><a href="https://github.com/elastic/elasticsearch-py/releases/tag/v9.1.0">elasticsearch 9.1.0</a></strong> - Python client for Elasticsearch</p><p><strong><a href="https://github.com/keras-team/keras/releases/tag/v3.11.0">Keras 3.11.0</a></strong> - Deep Learning for humans</p><p><strong><a href="https://github.com/google/flax/releases/tag/v0.11.0">flax 0.11.0</a></strong> - A neural network library for JAX designed for flexibility</p><p><strong><a href="https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-22-2025-07-29">docutils 0.22.0</a></strong> - Python Documentation Utilities</p><p><strong><a href="https://github.com/huggingface/trl/releases/tag/v0.20.0">trl 0.20.0</a></strong> - Train transformer language models with reinforcement learning</p><p><strong><a href="https://github.com/langchain-ai/langgraph/releases/tag/0.6.0">langgraph 0.6.0</a></strong> - Building stateful, multi-actor applications with LLMs</p><p><strong><a href="https://github.com/narwhals-dev/narwhals/releases/tag/v2.0.0">narwhals 2.0.0</a></strong> - Extremely lightweight compatibility layer between dataframe libraries</p><p><strong><a href="https://github.com/microsoft/autogen/releases/tag/python-v0.7.1">autogen 0.7.1</a></strong> - A programming framework for agentic AI</p><p><strong><a href="https://github.com/sysid/sse-starlette/releases/tag/v3.0.0">sse-starlette 3.0.0</a></strong> - SSE plugin for Starlette</p><p><strong><a href="https://github.com/Lightning-AI/utilities/releases/tag/v0.15.0">lightning-utilities 0.15.0</a></strong> - Lightning toolbox for across the our ecosystem</p><p><strong><a href="https://github.com/metaopt/optree/releases/tag/v0.17.0">optree 0.17.0</a></strong> - Optimized PyTree Utilities</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Django's Ecosystem, Python Backstage, f-strings and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/djangos-ecosystem-python-backstage</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/djangos-ecosystem-python-backstage</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 26 Jul 2025 03:30:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b5475682-a0d8-4df9-804a-212be4aafd3d_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://marimo.io/blog/announcing-molab">Run marimo in the cloud</a></h4><p>Marimo team announced in their blog post about <strong>mo</strong>lab, it is a cloud-hosted marimo notebook workspace that lets us rapidly experiment on data using Python and SQL.</p><h4><a href="https://www.python.org/downloads/release/python-3140rc1/">Python 3.14 release candidate 1 is released!</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://www.djangoproject.com/community/ecosystem/">Django's Ecosystem</a></h4><p>A programming language or framework becomes popular when it offers numerous helpful tools and resources. Django is one of the great examples of it. The Django Software Foundation has put together a useful list with information, including packages for debugging, API development and more.</p><h6># Django Software Foundation</h6><h4><a href="https://www.thepythoncodingstack.com/p/python-disassembling-bytecode-dis-module">Python Backstage &#8226; Disassembling Python Code Using the `dis` Module</a></h4><p>We all know that the Python interpreter changes our code into an intermediate form called bytecode. With the <code>dis</code> module, you can see what this bytecode looks like. In this article, Stephen Gruppetta explained what happens inside when we run a Python program.</p><h6># Stephen Gruppetta</h6><h4><a href="https://hugovk.dev/blog/2025/run-coverage-on-tests/">Run coverage on tests</a></h4><p>Code coverage tools show which parts of your program were run during testing. Do you know they are also useful for other things, like finding tests that didn&#8217;t run? In this post, Hugo van Kemenade explained why we should use a coverage tool, with two easy examples.</p><h6># Hugo van Kemenade</h6><h4><a href="https://fstrings.wtf/">How good is your knowledge of Python f-strings?</a></h4><p>If you think you know a lot about f-strings, try this quiz made by Armin Ronacher. I scored 11 and learned that you can do many cool things with f-strings. I hope you have fun &amp; learning too!</p><h6># Armin Ronacher</h6><h4><a href="https://tech.olx.com/scaling-recommendations-service-at-olx-db4548813e3a">Scaling recommendations service at OLX</a></h4><p>In distributed systems, there is a saying: &#8220;You are as slow as your slowest task.&#8221; If you don&#8217;t make your slowest part faster, the whole system will be as slow as that part. In this article, Jordi Esteve Sorribas explained the changes they made to a FastAPI service to help it handle tens of thousands of requests every second, with almost all responses happening in under 10 milliseconds.</p><h6># Jordi Esteve Sorribas</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/jq">jq.py</a></strong> - a lightweight and flexible JSON processor</p><p><strong><a href="https://piptrends.com/package/arakawa">Arakawa</a></strong> - Build interactive reports in seconds using Python</p><p><strong><a href="https://piptrends.com/package/pydantic-cli">pydantic-cli</a></strong> - Turn Pydantic defined Data Models into CLI Tools</p><p><strong><a href="https://piptrends.com/package/pytestarch">PyTestArch</a></strong> - Test framework for software architecture based on imports between modules</p><p><strong><a href="https://piptrends.com/package/pyhamcrest">PyHamcrest</a></strong> - Hamcrest framework for matcher objects</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/Textualize/textual/releases/tag/v5.0.0">Textual 5.0.0</a></strong> - Modern Text User Interface framework</p><p><strong><a href="https://github.com/huggingface/huggingface_hub/releases/tag/v0.34.0">huggingface_hub 0.34.0</a></strong> - Client library to download and publish models, datasets and other repos on the huggingface.co hub</p><p><strong><a href="https://github.com/vllm-project/vllm/releases/tag/v0.10.0">vLLM 0.10.0</a></strong> - A high-throughput and memory-efficient inference and serving engine for LLMs</p><p><strong><a href="https://github.com/pyutils/line_profiler/releases/tag/v5.0.0">line_profiler 5.0.0</a></strong> - Line-by-line profiler</p><p><strong><a href="https://github.com/mlfoundations/open_clip/releases/tag/v3.0.0">OpenCLIP 3.0.0</a></strong> - Open reproduction of consastive language-image pretraining (CLIP) and related</p><p><strong><a href="https://github.com/crewAIInc/crewAI/releases/tag/0.150.0">CrewAI 0.150.0</a></strong> - Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks</p><p><strong><a href="https://github.com/CyberAgentAILab/cmaes/releases/tag/v0.12.0">cmaes 0.12.0</a></strong> - Lightweight Covariance Matrix Adaptation Evolution Strategy (CMA-ES) implementation for Python 3</p><p><strong><a href="https://github.com/jax-ml/jax/releases/tag/jax-v0.7.0">JAX 0.7.0</a></strong> - Differentiate, compile, and transform Numpy code</p><p><strong><a href="https://github.com/kedro-org/kedro/releases/tag/1.0.0">Kedro 1.0.0</a></strong> - Kedro helps you build production-ready data and analytics pipelines</p><p><strong><a href="https://github.com/pydantic/logfire/releases/tag/v4.0.0">Logfire 4.0.0</a></strong> - The best Python observability tool! &#129717;&#128293;</p><p><strong><a href="https://github.com/feast-dev/feast/releases/tag/v0.51.0">Feast 0.51.0</a></strong> - Python SDK for Feast</p><p><strong><a href="https://github.com/jannikmi/timezonefinder/blob/master/CHANGELOG.rst">timezonefinder 7.0.0</a></strong> - python package for finding the timezone of any point on earth (coordinates) offline</p><p><strong><a href="https://github.com/geoalchemy/geoalchemy2/releases/tag/0.18.0">GeoAlchemy2 0.18.0</a></strong> - Using SQLAlchemy with Spatial Databases</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[TorchAudio, uv, Multi-tenant App with Django, Automate the Boring Stuff and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/torchaudio-uv-multi-tenant-app-with</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/torchaudio-uv-multi-tenant-app-with</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 19 Jul 2025 03:30:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/08e26cb1-f88a-45c7-a574-fc8825763b65_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://2025.pycon.gr/en/program/schedule/">PyCon Greece 2025 &#8211; Schedule is Live</a></h4><h4><a href="https://peps.python.org/pep-0734/">PEP 734 &#8211; Multiple Interpreters in the Stdlib (Final)</a></h4><h4><a href="https://peps.python.org/pep-0792/">PEP 792 &#8211; Project status markers in the simple index (Accepted)</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><div id="youtube2-TiBIjouDGuI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TiBIjouDGuI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TiBIjouDGuI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Hynek Schlawack released another great video on <strong>uv</strong>, where he explained how he uses the <strong>just</strong> tool to store commands in a cross&#8209;platform, portable way for everyday tasks like installing or refreshing virtual environments, running tests and code checks and even development tasks like sending requests.</p><h6># Hynek Schlawack</h6><h4><a href="https://docs.astral.sh/uv/guides/migration/pip-to-project/">From pip to a uv project</a></h4><p>The Astral team published a guide on moving from a <strong>pip</strong> and <strong>pip&#8209;tools</strong> workflow based on requirements files to <strong>uv</strong>&#8217;s project workflow using <strong>pyproject.toml</strong> and <strong>uv.lock</strong>.</p><h6># Astral</h6><h4><a href="https://realpython.com/python-torchaudio/">Use TorchAudio to Prepare Audio Data for Deep Learning</a></h4><p>Ever wondered how machine learning models process audio data and handle varying audio lengths while staying robust?<br>If yes, check out this tutorial by Negar Vahid, where she walked through handling audio data with <strong>TorchAudio</strong>, a PyTorch&#8209;based toolkit.</p><h6># Negar Vahid</h6><h4><a href="https://testdriven.io/blog/django-multi-tenant/">Building a Multi-tenant App with Django</a></h4><p>Multitenancy is a key aspect to consider when building a SaaS application. In this article, Nik Tomazic explained three multi&#8209;tenancy architecture strategies and demonstrated how to implement one using <strong>Django</strong>, <strong>django&#8209;tenants</strong> and <strong>django&#8209;tenant&#8209;users</strong>.</p><h6># Nik Tomazic</h6><h4><a href="https://inventwithpython.com/blog/lost-av-chapter.html">Audio, Video, and Webcams in Python (Lost Chapter from Automate the Boring Stuff)</a></h4><p>Python makes it easy to automate all kinds of tasks&#8212;one of the big reasons so many of us love it. In this article, Al Sweigart demonstrates how to automate various tasks involving <strong>audio, video, and webcams</strong> with clear examples.</p><h6># Al Sweigart</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://github.com/eightBEC/fastapi-ml-skeleton">FastAPI Model Server Skeleton</a></strong> - FastAPI Skeleton App to serve machine learning models production-ready</p><p><strong><a href="https://piptrends.com/package/zipnn">ZipNN</a></strong> - A Lossless Compression Library for AI pipelines</p><p><strong><a href="https://piptrends.com/package/tweepy">Tweepy</a></strong> - Library for accessing the X API (Twitter)</p><p><strong><a href="https://piptrends.com/package/runtype">Runtype</a></strong> - Type dispatch and validation for run-time Python</p><p><strong><a href="https://piptrends.com/package/deepface">deepface</a></strong> - A Lightweight Face Recognition and Facial Attribute Analysis Framework (Age, Gender, Emotion, Race) for Python</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/astral-sh/uv/releases/tag/0.8.0">uv 0.8.0</a></strong> - An extremely fast Python package and project manager, written in Rust.</p><p><strong><a href="https://github.com/pytorch/ao/releases/tag/v0.12.0">TorchAO 0.12.0</a></strong> - Package for applying ao techniques to GPU models</p><p><strong><a href="https://github.com/firebase/firebase-admin-python/releases/tag/v7.0.0">Firebase Admin Python SDK 7.0.0</a></strong></p><p><strong><a href="https://github.com/explodinggradients/ragas/releases/tag/v0.3.0">ragas 0.3.0</a></strong> - Supercharge Your LLM Application Evaluations &#128640;</p><p><strong><a href="https://github.com/alisaifee/coredis/releases/tag/5.0.0">coredis 5.0.0</a></strong> - Python async client for Redis key-value store</p><p><strong><a href="https://github.com/streamlit/streamlit/releases/tag/1.47.0">Streamlit 1.47.0</a></strong> - A faster way to build and share data apps</p><p><strong><a href="https://github.com/roboflow/supervision/releases/tag/0.26.0">supervision 0.26.0</a></strong> - A set of easy-to-use utils that will come in handy in any Computer Vision project</p><p><strong><a href="https://github.com/astronomer/dag-factory/releases/tag/v0.23.0">dag-factory 0.23.0</a></strong> - Dynamically build Apache Airflow DAGs from YAML files</p><p><strong><a href="https://github.com/kedro-org/kedro-plugins/releases/tag/kedro-datasets-8.0.0">kedro-datasets 8.0.0</a></strong> - Kedro-Datasets is where you can find all of Kedro's data connectors.</p><p><strong><a href="https://github.com/CycloneDX/cyclonedx-python/releases/tag/v7.0.0">cyclonedx-python 7.0.0</a></strong> - CycloneDX Software Bill of Materials (SBOM) generator for Python projects and environments</p><p><strong><a href="https://github.com/unclecode/crawl4ai/releases/tag/v0.7.0">Crawl4AI 0.7.0</a></strong> - Open-source LLM Friendly Web Crawler &amp; scraper</p><p><strong><a href="https://github.com/Textualize/textual/releases/tag/v4.0.0">textual 4.0.0</a></strong> - Modern Text User Interface framework</p><p><strong><a href="https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.35.0">opentelemetry-python 1.35.0</a></strong> - OpenTelemetry Python API</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Making a Simple HTTP Server with Asyncio, Application Logging in Python and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/making-a-simple-http-server-with</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/making-a-simple-http-server-with</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 12 Jul 2025 06:53:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3866eb3c-c99c-4896-9783-577bf7867487_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://pyfound.blogspot.com/2025/07/thinking-about-running-for-psf-board.html">Thinking about running for the PSF Board?</a></h4><h4><a href="https://www.youtube.com/playlist?list=PLGVZCDnMOq0qi19dNwAO6KxWmMqXppGpz">PyData London 2025 Videos</a></h4><h4><a href="https://www.python.org/downloads/release/python-3140b4/">Python 3.14.0 beta 4 is here!</a></h4><p>This release, 3.14.0b4, is the last of four planned beta releases.</p><h4><a href="https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-pep779">In Python 3.14, Free-threaded will be fully supported as non-experimental</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://pythonkoans.substack.com/p/koan-1-the-empty-path">Koan 1: The Empty Path</a></h4><p>In Python, writing <code>if some_object:</code> is super common and convenient, but have you ever wondered how it actually works behind the scenes or how you can customise that behaviour for your own classes? If not, then you should definitely check out this article by Vivis Dev, where both questions are answered clearly with practical examples.</p><h6># Vivis Dev</h6><h4><a href="https://jacobpadilla.com/articles/asyncio-protocols">Making a Simple HTTP Server with Asyncio Protocols</a></h4><p>In this article, Jacob Padilla walked through building a simple HTTP server from scratch using <code>asyncio</code> Protocols - no external libraries. It's a great way to understand how an HTTP server works under the hood.</p><h6># Jacob Padilla</h6><h4><a href="https://medium.com/@adrien.d_84254/building-and-sharing-a-practical-python-security-checklist-d102e7e8cd02">Building and Sharing a Practical Python Security Checklist</a></h4><p>Some Python functions and tools can introduce subtle security risks if not used carefully. In this article, Adrien highlights examples like <code>eval</code>, <code>exec</code>, <code>pickle</code>, XSS issues and insecure password hashing, along with safer alternatives to use instead.</p><h6># Adrien</h6><h4><a href="https://www.dash0.com/guides/logging-in-python">Application Logging in Python: Recipes for Observability</a></h4><p>Logs are crucial for understanding what's happening inside your application, especially in production, where debugging isn't an option. Along with metrics and traces, effective logging provides a clear picture of issues and behaviour. This article by the dash0 team is a must-read for mastering logging in Python. It covers structured JSON logs, centralised logging config and enriching logs with <code>contextvars</code> and other modern observability practices.</p><h6># dash0 team</h6><div id="youtube2-VC6dmPcin2E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;VC6dmPcin2E&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/VC6dmPcin2E?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Simon Willison shared a short demo where he used Claude Code to implement a new GitHub Actions workflow to add a feature to one of his GitHub repositories. A neat example of how AI can assist in real development tasks.</p><h6># Simon Willison</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/injector">Injector</a></strong> - Python dependency injection framework, inspired by Guice</p><p><strong><a href="https://piptrends.com/package/ibis-framework">Ibis</a></strong> - The portable Python dataframe library</p><p><strong><a href="https://piptrends.com/package/pegen">Pegen</a></strong> - CPython's PEG parser generator</p><p><strong><a href="https://piptrends.com/package/htmy">htmy</a></strong> - Async, pure-Python server-side rendering engine</p><p><strong><a href="https://piptrends.com/package/cryptography">cryptography</a></strong> - cryptography is a package which provides cryptographic recipes and primitives to Python developers</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/pybind/pybind11/releases/tag/v3.0.0">pybind11 3.0.0</a></strong> - Seamless operability between C++11 and Python</p><p><strong><a href="https://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.11.0">mcp 1.11.0</a></strong> - Model Context Protocol SDK</p><p><strong><a href="https://github.com/posit-dev/great-tables/releases/tag/v0.18.0">great-tables 0.18.0</a></strong> - Easily generate information-rich, publication-quality tables from Python.</p><p><strong><a href="https://github.com/google/adk-python/releases/tag/v1.6.1">google-adk 1.6.1</a></strong> - Agent Development Kit</p><p><strong><a href="https://github.com/huggingface/datasets/releases/tag/4.0.0">Datasets 4.0.0</a></strong> - HuggingFace community-driven open-source library of datasets</p><p><strong><a href="https://github.com/unionai-oss/pandera/releases/tag/v0.25.0">Pandera 0.25.0</a></strong> - A light-weight and flexible data validation and testing tool for statistical data objects.</p><p><strong><a href="https://github.com/browser-use/browser-use/releases">browser-use 0.5.x</a></strong> - Make websites accessible for AI agents</p><p><strong><a href="https://github.com/tobymao/sqlglot/blob/main/CHANGELOG.md">SQLGlot 27.0.0</a></strong> - An easily customizable SQL parser and transpiler</p><p><strong><a href="https://github.com/modin-project/modin/releases/tag/0.34.0">Modin 0.34.0</a></strong> - Make your pandas code run faster by changing one line of code.</p><p><strong><a href="https://github.com/pyocd/pyOCD/releases/tag/v0.37.0">pyOCD 0.37.0</a></strong> - Cortex-M debugger for Python</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How Can You Structure Your Python Script, Optimizing Test Execution and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/how-can-you-structure-your-python</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/how-can-you-structure-your-python</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 05 Jul 2025 03:30:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6bcf297d-4e4f-47eb-bf8f-e7ac60de89f3_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h3><a href="https://pyfound.blogspot.com/2025/06/python-language-summit-2025.html">The Python Language Summit 2025</a></h3><p>The Python Language Summit 2025 occurred on May 14th in Pittsburgh, Pennsylvania. Core developers and special guests from around the world gathered in one room for an entire day of presentations and discussions about the future of the Python programming language.</p><h4><a href="https://djangotv.com/videos/djangocon-europe/2025/">DjangoCon Europe 2025 Videos</a></h4><h4><a href="https://peps.python.org/pep-0685/">PEP 685: Comparison of Extra Names for Optional Distribution Dependencies (Final)</a></h4><h4><a href="https://peps.python.org/pep-0751/">PEP 751: A File Format to Record Python Dependencies for Installation Reproducibility (Final)</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://timonweb.com/django/optimizing-test-execution-running-live_server-tests-last-with-pytest/">Optimizing Test Execution: Running live_server Tests Last with Pytest</a></h4><p>It&#8217;s a good idea to run slow tests last; this way, you catch failed tests early and avoid putting unnecessary stress continuously on resources like databases and external services. In this article, Tim Kamanin shared how to achieve this by creating a custom marker and a pytest plugin tailored for Django application tests.</p><h6># Tim Kamanin</h6><h4><a href="https://machinelearningmastery.com/navigating-imbalanced-datasets-with-pandas-and-scikit-learn/">Navigating Imbalanced Datasets with Pandas and Scikit-learn</a></h4><p>Imbalanced datasets are a common challenge in real-world machine learning. If not handled properly, models tend to favour the majority class, leading to biased results. In this article, Iv&#225;n Palomares Carrascosa shared three effective strategies(Inverse Frequency, Undersampling, and Oversampling) to balance such data using Pandas and Scikit-learn.</p><h6># Iv&#225;n Palomares Carrascosa</h6><h4><a href="https://realpython.com/python-script-structure/">How Can You Structure Your Python Script?</a></h4><p>Many people write Python scripts to automate tasks, but without proper structure, these scripts can quickly become hard to maintain. If you're planning to write a script, check out this Real Python article by Rohit Goswami. Your future self (and your teammates) will thank you. He explained how to organise your code using functions, constants, enums and data classes; improve usability with command-line arguments; logging; and even make scripts self-contained using PEP 723 to handle dependencies inline.</p><h6># Rohit Goswami</h6><h4><a href="https://towardsdatascience.com/the-art-of-multimodal-ai-system-design/">Beyond Model Stacking: The Architecture Principles That Make Multimodal AI Systems Work</a></h4><p>I hope you remember in the Iron Man movie when Tony Stark flew around and JARVIS could understand what was in front of him? That kind of real-time visual understanding feels like science fiction, but Eric Chung wanted to bring it closer to reality. So he built <strong>VisionScout</strong>, a system combining YOLOv8 for object detection, CLIP for semantic reasoning, Places365 for scene classification and Llama 3.2 for language generation. He shared the full journey, along with insights and implementation details, in his article on <em>Towards Data Science</em>.</p><h6># Eric Chung</h6><div id="youtube2-V77fXADveo0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;V77fXADveo0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/V77fXADveo0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>In this video, Vincent D. Warmerdam and Johnny demoed some of the powerful features of <strong>Marimo Notebook</strong> and walked through the amazing things you can build with it. It&#8217;s a great showcase of how Marimo stands out from traditional notebooks.</p><h6># Vincent D. Warmerdam &amp; Johnny</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/dishka">Dishka</a></strong> - Cute DI framework with scopes and agreeable API</p><p><strong><a href="https://piptrends.com/package/thepipe-api">thepi.pe</a></strong> - Get clean data from tricky documents, powered by VLMs</p><p><strong><a href="https://piptrends.com/package/manimgl">Manim</a></strong> - Animation engine for explanatory math videos</p><p><strong><a href="https://piptrends.com/package/extractous">Extractous</a></strong> - Fast and efficient unstructured data extraction. Extractous Python Binding</p><p><strong><a href="https://piptrends.com/package/bagels">Bagels</a></strong> - Powerful terminal expense tracker.</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/dimastbk/python-calamine/releases/tag/v0.4.0">python-calamine 0.4.0</a></strong> - Python binding for Rust's library for reading excel and odf file - calamine</p><p><strong><a href="https://github.com/seleniumbase/SeleniumBase/releases/tag/v4.40.0">SeleniumBase 4.40.0</a></strong> - A complete web automation framework for end-to-end testing</p><p><strong><a href="https://github.com/lancedb/lance/releases/tag/v0.31.0">pylance 0.31.0</a></strong> - Python wrapper for Lance columnar format</p><p><strong><a href="https://github.com/PyAV-Org/PyAV/blob/main/CHANGELOG.rst">PyAV 15.0.0</a></strong> - Pythonic bindings for FFmpeg's libraries</p><p><strong><a href="https://github.com/huggingface/peft/releases/tag/v0.16.0">PEFT 0.16.0</a></strong> - Parameter-Efficient Fine-Tuning (PEFT)</p><p><strong><a href="https://github.com/crewAIInc/crewAI/releases/tag/0.140.0">CrewAI 0.140.0</a></strong> - Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks</p><p><strong><a href="https://github.com/statsig-io/statsig-server-core/releases/tag/0.6.0">statsig-python-core 0.6.0</a></strong> - Statsig Python bindings for the Statsig Core SDK</p><p><strong><a href="https://github.com/deepset-ai/haystack-experimental/releases/tag/v0.11.0">haystack-experimental 0.11.0</a></strong> - Experimental components and features for the Haystack LLM framework</p><p><strong><a href="https://github.com/wandb/wandb/releases/tag/v0.21.0">wandb 0.21.0</a></strong> - A CLI and library for interacting with the Weights &amp; Biases API.</p><p><strong><a href="https://github.com/jlowin/fastmcp/releases/tag/v2.10.0">fastmcp 2.10.0</a></strong> - The fast, Pythonic way to build MCP servers.</p><p><strong><a href="https://github.com/feast-dev/feast/releases/tag/v0.50.0">feast 0.50.0</a></strong> - The Open Source Feature Store for AI/ML</p><p><strong><a href="https://github.com/UKPLab/sentence-transformers/releases/tag/v5.0.0">sentence-transformers 5.0.0</a></strong> - Embeddings, Retrieval, and Reranking</p><p><strong><a href="https://github.com/PaddlePaddle/Paddle/wiki/PaddlePaddle-3.1.0-Release-Note-EN">PaddlePaddle 3.1.0</a></strong> - Parallel Distributed Deep Learning</p><p><strong><a href="https://github.com/bigcat88/pillow_heif/releases/tag/v1.0.0">pillow-heif 1.0.0</a></strong> - Python interface for libheif library</p><p><strong><a href="https://github.com/hbldh/bleak/releases/tag/v1.0.0">bleak 1.0.0</a></strong> - Bluetooth Low Energy platform Agnostic Klient</p><p><strong><a href="https://github.com/browser-use/browser-use/releases">browser-use 0.4</a></strong> - Make websites accessible for AI agents</p><p><strong><a href="https://github.com/PostHog/posthog-python/releases/tag/v6.0.0">PostHog 6.0.0</a></strong> - Integrate PostHog into any python application</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Build a Wikipedia Search Engine, Working with INI files Using configparser and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/build-a-wikipedia-search-engine-working</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/build-a-wikipedia-search-engine-working</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 28 Jun 2025 03:30:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b2010399-3f0e-45dc-9ef7-f9cd4ad5d4a7_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Articles</h3><div><hr></div><h4><a href="https://github.com/wyattferguson/cookiecutter-python-uv">A modern, opinionated, cookiecutter template for your next Python project</a></h4><p>If you're starting a new project, it's smart to use a good template instead of building everything from scratch, as it can save a lot of time. There are plenty out there and if you're looking for a good one, check out the template recently created by Wyatt Ferguson.</p><h6># Wyatt Ferguson</h6><h4><a href="https://www.blog.pythonlibrary.org/2025/04/09/python-101-an-intro-to-working-with-ini-files-using-configparser/">Python 101 - An Intro to Working with INI files Using configparser</a></h4><p>Did you know Python&#8217;s standard library includes <code>configparser</code>, which lets you work with Windows-style INI files? If not, check out this article by Mike Driscoll, where he walks through creating, editing and reading INI files with clear examples.</p><h6># Mike Driscoll</h6><div id="youtube2-pNWvUx8vXsg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;pNWvUx8vXsg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/pNWvUx8vXsg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Text search is both a tricky and interesting topic. While tools like OpenSearch or Elasticsearch make it easier, building one yourself can teach you a lot. If you're up for that challenge, check out this tutorial video by Rahul Jha where he built a Wikipedia Search Engine from scratch using Gensim, TF-IDF and Flask.</p><h6># Rahul Jha</h6><h4><a href="https://github.com/kburchfiel/pfn">Python For Nonprofits to retrieve, analyze, visualize and share nonprofit data</a></h4><p>In this repository, Kenneth Burchfiel walked through how to use Python to import, clean and reformat data, perform analysis using descriptive stats and linear regression, create charts and maps and share spreadsheets and interactive visualizations online. While it&#8217;s aimed at the nonprofit sector, it offers valuable lessons for anyone looking to strengthen their data presentation skills.</p><h6># Kenneth Burchfiel</h6><h4><a href="https://www.lihil.cc/blog/design-patterns-you-should-unlearn-in-python-part2/">Design Patterns You Should Unlearn in Python-Part2</a></h4><p>There&#8217;s no silver bullet in life and the same goes for programming - even widely praised best practices like design patterns don&#8217;t apply the same way across languages. Python, for example, often offers simpler, more natural solutions than traditional patterns used in languages like C++ or Java. In this article, Cheng/Racey Chan covered two patterns - Flyweight and Prototype. If you resonate with his approach, don&#8217;t miss part 1 of his series as well.</p><h6># Cheng/Racey Chan</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/shapely">Shapely</a></strong> - Manipulation and analysis of geometric objects</p><p><strong><a href="https://piptrends.com/package/partial-json-parser">Partial JSON Parser</a></strong> - Parse partial JSON generated by LLM</p><p><strong><a href="https://piptrends.com/package/mesa">Mesa</a></strong> - Agent-based modeling (ABM) in Python</p><p><strong><a href="https://piptrends.com/package/nanodjango">nanodjango</a></strong> - Run Django models and views from a single file, and convert it to a full project.</p><p><strong><a href="https://piptrends.com/package/litellm">LiteLLM</a></strong> - Library to easily interface with LLM API providers</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/Farama-Foundation/Gymnasium/releases/tag/v1.2.0">Gymnasium 1.2.0</a></strong> - A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)</p><p><strong><a href="https://github.com/langchain-ai/langgraph/releases/tag/0.5.0">LangGraph 0.5.0</a></strong> - Building stateful, multi-actor applications with LLMs</p><p><strong><a href="https://github.com/dagster-io/dagster/releases/tag/1.11.0">Dagster 1.11.0 (core) / 0.27.0 (libraries)</a></strong> - An orchestration platform for the development, production, and observation of data assets.</p><p><strong><a href="https://github.com/terricain/aioboto3/blob/main/CHANGELOG.rst">aioboto3 15.0.0</a></strong> - Async boto3 wrapper</p><p><strong><a href="https://github.com/lxml/lxml/releases/tag/lxml-6.0.0">lxml 6.0.0</a></strong> - Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API</p><p><strong><a href="https://github.com/huggingface/transformers/releases/tag/v4.53.0">transformers 4.53.0</a></strong> - State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow</p><p><strong><a href="https://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.10.0">mcp 1.10.0</a></strong> - Model Context Protocol SDK</p><p><strong><a href="https://github.com/sarugaku/resolvelib/blob/main/CHANGELOG.rst">resolvelib 1.2.0</a></strong> - Resolve abstract dependencies into concrete ones</p><p><strong><a href="https://github.com/chdb-io/chdb/releases/tag/v3.4.0">chdb 3.4.0</a></strong> - An in-process SQL OLAP Engine powered by ClickHouse</p><p><strong><a href="https://github.com/huggingface/diffusers/releases/tag/v0.34.0">Diffusers 0.34.0</a></strong> - State-of-the-art diffusion in PyTorch and JAX</p><p><strong><a href="https://github.com/weiwei/junitparser/blob/master/CHANGELOG.md">junitparser 4.0.0</a></strong> - Manipulates JUnit/xUnit Result XML files</p><p><strong><a href="https://bitbucket.org/pybtex-devs/pybtex/src/master/CHANGES">Pybtex 0.25.0</a></strong> - A BibTeX-compatible bibliography processor in Python</p><p><strong><a href="https://github.com/567-labs/instructor/releases/tag/1.9.0">Instructor 1.9.0</a></strong> - structured outputs for llm</p><p><strong><a href="https://github.com/sparckles/Robyn/releases/tag/v0.70.0">Robyn 0.70.0</a></strong> - A Super Fast Async Python Web Framework with a Rust runtime</p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How Reladiff Works, t-strings, GIL and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/how-reladiff-works-t-strings-gil</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/how-reladiff-works-t-strings-gil</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 21 Jun 2025 03:30:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/be8f56e0-b6ed-4b87-8ff7-08f72875a7f3_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.pyohio.org/2025/attend/registration/">Registration for PyOhio 2025 is open!</a></h4><h4><a href="https://www.python.org/downloads/release/python-3140b3/">Python 3.14.0 beta 3 is here!</a></h4><p>This release, 3.14.0b3, is the third of four planned beta releases.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://devblogs.microsoft.com/cosmosdb/building-a-modern-python-api-with-azure-cosmos-db-a-5-part-video-series/">Building a Modern Python API with Azure Cosmos DB</a></h4><p>Gwyneth Pe&#241;a-Siguenza created a 5-part video series on building scalable Python APIs with FastAPI and Azure Cosmos DB. She covered key concepts like Pydantic models, FastAPI's dependency injection, async calls using <code>azure.cosmos.aio</code>, batch operations and centralised exception handling.</p><h6># Gwyneth Pe&#241;a-Siguenza</h6><h4><a href="https://eshsoft.com/blog/how-reladiff-works">How Reladiff Works</a></h4><p>Pinpointing differences between two tables is very important for tasks like validating data migrations or spotting corruption. But when those tables live in different databases, it becomes tricky due to issues like network costs and different SQL dialects. In this article, Erez Shinnan shared how <code>Reladiff</code> tackles these challenges and its development journey.</p><h6># Erez Shinnan</h6><div id="youtube2-fM4O9bModsE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;fM4O9bModsE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/fM4O9bModsE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Type hinting, type checking and data validation are often confusing words if someone uses them together, because they serve different purposes. In this video, Corey Schafer clearly explained the differences using a simple, practical example - it helps you understand what each term means, when to use them and how they work together in Python.</p><h6># Corey Schafer</h6><div id="youtube2-yx1QPm4aXeA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;yx1QPm4aXeA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/yx1QPm4aXeA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><code>t-strings</code> are a new feature which is coming in Python 3.14. If you're wondering why we need t-strings when f-strings already exist, check out this video by Anthony Shaw. He explained how t-strings make it easier to create reusable templates and add custom logic or sanitisation, which makes string formatting more powerful and secure, with a clear and practical example.</p><h6># Anthony Shaw</h6><h4><a href="https://medium.com/techtofreedom/python-is-removing-gil-gradually-b41274fa62a4?sk=9fa946e23efca96e9c31ac2692ffa029">Python is Removing GIL, Gradually</a></h4><p>You've probably heard about the GIL vs no-GIL debate; it&#8217;s been happening for a while. If you&#8217;re not familiar with the full context, you should read this article by Yang Zhou. He explained what the GIL is, why it became a problem, what PEP 703 proposes, how to set up a no-GIL version of Python and what all of this means for Python developers. It's a great overview of a major topic in Python&#8217;s future.</p><h6># Yang Zhou</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/click">Click</a></strong> - Composable command line interface toolkit</p><p><strong><a href="https://piptrends.com/package/pytest-xdist">pytest-xdist</a></strong> - pytest plugin for distributed testing, most importantly across multiple CPUs</p><p><strong><a href="https://piptrends.com/package/dearpygui">DearPyGUI</a></strong> - A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies</p><p><strong><a href="https://piptrends.com/package/tika">Apache Tika</a></strong> - Python binding to the Apache Tika&#8482; REST services allowing Tika to be called natively in the Python</p><p><strong><a href="https://piptrends.com/package/pydantic-resolve">pydantic-resolve</a></strong> - business model friendly data orchestration tool</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://pypi.org/project/webdataset/#history">webdataset 1.0.2</a></strong></p><p><strong><a href="https://github.com/plotly/Kaleido/releases/tag/v1.0.0">Kaleido 1.0.0</a></strong></p><p><strong><a href="https://github.com/dottxt-ai/outlines/releases/tag/1.0.0">Outlines 1.0.0</a></strong></p><p><strong><a href="https://github.com/valkey-io/valkey-glide/releases/tag/v2.0.0">Valkey GLIDE 2.0.0</a></strong></p><p><strong><a href="https://github.com/streamlit/streamlit/releases/tag/1.46.0">Streamlit 1.46.0</a></strong></p><p><strong><a href="https://github.com/pydantic/pydantic-ai/releases">pydantic-graph, pydantic-evals, pydantic-ai-slim, pydantic-ai, fasta2a 0.3.0</a></strong></p><p><strong><a href="https://github.com/oauthlib/oauthlib/releases">oauthlib 0.3.0</a></strong></p><p><strong><a href="https://github.com/Labelbox/labelbox-python/releases/tag/v7.0.0">labelbox 7.0.0</a></strong></p><p><strong><a href="https://github.com/jazzband/django-redis/releases/tag/6.0.0">django-redis 6.0.0</a></strong></p><p><strong><a href="https://github.com/astral-sh/ruff/releases/tag/0.12.0">ruff 0.12.0</a></strong></p><p><strong><a href="https://github.com/opensearch-project/opensearch-py/releases/tag/v3.0.0">opensearch-py 3.0.0</a></strong></p><p><strong><a href="https://github.com/Azure/azure-sdk-for-python/releases">Multiple Azure client libraries bumped to major versions</a></strong></p><p><strong><a href="https://github.com/bayesian-optimization/BayesianOptimization/releases/tag/v3.0.0">bayesian-optimization 3.0.0</a></strong></p><p><strong><a href="https://github.com/libtcod/python-tcod/releases/tag/19.0.0">tcod 19.0.0</a></strong></p><p><strong><a href="https://pyzmq.readthedocs.io/en/latest/changelog.html">pyzmq 27.0.0</a></strong></p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[tiny-agents, Text Editor in 7 Minutes, Avoid indexes and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/tiny-agents-text-editor-in-7-minutes</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/tiny-agents-text-editor-in-7-minutes</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 14 Jun 2025 03:30:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/aecee7ef-47e0-4e32-b2b5-1b80f00800e3_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.python.org/downloads/release/python-3135/">Python 3.13.5 is now available</a></h4><h4><a href="https://za.pycon.org/pages/speaking/how_to_apply/">PyCon Africa CFP is open!</a></h4><h4><a href="https://www.youtube.com/playlist?list=PLGVZCDnMOq0qLS7Mk-jI9jhb4t5UY6yDW">PyData Virginia 2025 Videos</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://codecut.ai/unified-dataframe-functions-pandas-polars-pyspark/">Narwhals: Unified DataFrame Functions for pandas, Polars, and PySpark</a></h4><p><code>Pandas</code> used to be the go-to tool for working with data. But now, there are many other excellent options available, like <code>Polars</code> and <code>PySpark</code>. If different teams in your company use different data tools, <code>Narwhals</code> can help. It allows everyone to work with data in a consistent way, no matter which library they prefer. Marco Gorelli showed this with a helpful example in his article.</p><h6># Marco Gorelli</h6><h4><a href="https://fronkan.hashnode.dev/writing-a-text-editor-in-7-minutes-using-textual">Writing a Text Editor in 7 Minutes using Textual</a></h4><p>No Vim? No problem! Fredrik Sj&#246;strand got your back. You can <strong>build your own text editor</strong> with <strong>syntax highlighting</strong> using <code>Textual</code> and he showed how in his article.</p><h6># Fredrik Sj&#246;strand</h6><h4><a href="https://huggingface.co/blog/python-tiny-agents">Tiny Agents in Python: a MCP-powered agent in ~70 lines of code</a></h4><p>The Hugging Face team has created <code>tiny-agents</code>, a new feature that lets their <code>huggingface_hub</code> software act as a <strong>Model Context Protocol (MCP) Client</strong>. This means that your AI models (LLMs) can now easily access and use tools from various MCP servers. In their recent article, they explained how to set up these tiny agents in Python to connect with MCP servers, which then gives your LLMs powerful new abilities to interact with the world and perform complex tasks.</p><h6># Hugging Face team</h6><h4><a href="https://realpython.com/marimo-notebook/">Marimo: A Reactive, Reproducible Notebook</a></h4><p><code>Marimo</code> notebooks are changing how we use notebooks because they are <strong>reactive</strong>. If you're interested in learning more, check out the Real Python article by Ian Eyre. He covered a lot about Marimo notebooks, including How to create a Marimo notebook, Marimo's reactivity, Adding interactivity to notebooks, How to share your notebooks.</p><h6># Ian Eyre</h6><h4><a href="https://www.pythonmorsels.com/avoid-indexes-in-python/">Avoid indexes in Python</a></h4><p>While indexes are useful, relying on them too much can be like <strong>Maslow's hammer</strong> &#8211; if all you have is a hammer, everything looks like a nail. In other words, you might try to solve every problem with the same tool, even when there are better ways. Trey Hunner has shown some fantastic alternative methods for common tasks like checking if something is in a list, getting specific items from tuples and looping through multiple lists, all without constantly needing to use indexes.</p><h6># Trey Hunner</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/tqdm">tqdm</a></strong> - &#9889; A Fast, Extensible Progress Bar for Python and CLI</p><p><strong><a href="https://piptrends.com/package/ipopo">iPOPO</a></strong> - A service-oriented component model framework</p><p><strong><a href="https://piptrends.com/package/nbconvert">nbconvert</a></strong> - Converting Jupyter Notebooks (.ipynb files) to other formats.</p><p><strong><a href="https://piptrends.com/package/arrest">Arrest</a></strong> - Arrest is a wrapper of pydantic and httpx to make your REST api calls type-safe and structured</p><p><strong><a href="https://piptrends.com/package/ovld">Ovld</a></strong> - Overloading Python functions</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/numpy/numpy/releases/tag/v2.3.0">NumPy 2.3.0</a></strong></p><p><strong><a href="https://github.com/google/adk-python/releases/tag/v1.3.0">google-adk 1.3.0</a></strong></p><p><strong><a href="https://gitlab.com/alelec/pip-system-certs/-/commits/v5.0">pip-system-certs 5.0</a></strong></p><p><strong><a href="https://github.com/goinnn/django-multiselectfield/releases/tag/v1.0.0">django-multiselectfield 1.0.0</a></strong></p><p><strong><a href="https://github.com/shap/shap/releases/tag/v0.48.0">shap 0.48.0</a></strong></p><p><strong><a href="https://github.com/django-waffle/django-waffle/releases/tag/v5.0.0">django-waffle 5.0.0</a></strong></p><p><strong><a href="https://github.com/schemathesis/schemathesis/releases/tag/v4.0.0">schemathesis 4.0.0</a></strong></p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[RAG, Pyrefly vs. ty, Nested Loops and Functional programming]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/rag-pyrefly-vs-ty-nested-loops-and</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/rag-pyrefly-vs-ty-nested-loops-and</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 07 Jun 2025 03:30:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/982b0ce1-e688-4209-a2bf-8226d48354a3_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://socket.dev/blog/monkey-patched-pypi-packages-steal-solana-private-keys">Monkey-Patched PyPI Packages Use Transitive Dependencies to Steal Solana Private Keys</a></h4><p>Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.</p><h4><a href="https://discuss.python.org/t/python-3-13-4-3-12-11-3-11-13-3-10-18-and-3-9-23-are-now-available/94367">Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 are now available</a></h4><h4><a href="https://pythonforgood.org/">Registration is now open for Python for Good</a></h4><h4><a href="https://forms.pythondiscord.com/form/project-demo-signup">Python Discord Event: Project Show-and-Tell</a></h4><p>This will be an opportunity for community members to present their Python projects.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://www.lihil.cc/blog/decorators-and--functional-programming/">Decorators and Functional programming</a></h4><p>In this article, <strong>Racey Chan</strong> explained key functional programming concepts: function composition, currying, closures, etc, using Python decorators through practical examples.</p><h6># Racey Chan</h6><h4><a href="https://vitaliihonchar.com/insights/python-rag-api">Python RAG API Tutorial with LangChain &amp; FastAPI &#8211; Complete Guide</a></h4><p>In this article, <strong>Vitalii Honchar</strong> explained how to build AI-powered apps that can chat with uploaded PDF files. He showed how to implement Retrieval Augmented Generation (RAG) using <code>FastAPI</code> for the API and <code>LangChain</code> to interact with OpenAI.</p><h6># Vitalii Honchar</h6><h4><a href="https://realpython.com/nested-loops-python/">Nested Loops in Python</a></h4><p>Nested loops are often discouraged, but they make perfect sense in scenarios like handling multidimensional data or generating patterns. In this article, <strong>Amanda Adoyi</strong> explained what nested loops are, shared practical examples, highlighted common pitfalls and offered tips on how to optimise them.</p><h6># Amanda Adoyi</h6><h4><a href="https://pythonspeed.com/articles/pydantic-json-memory/">Loading Pydantic models from JSON without running out of memory</a></h4><p>When working with large JSON files and loading them into Pydantic, memory usage can become a concern. Instead of using <code>model_validate_json</code>, it's better to use parsers like <code>ijson</code> to handle data efficiently. In this article, <strong>Itamar Turner-Trauring</strong> explained how to do that and also shared another memory-saving approach using dataclasses with<strong> </strong><code>__slots__</code> for better performance.</p><h6># Itamar Turner-Trauring</h6><h4><a href="https://blog.edward-li.com/tech/comparing-pyrefly-vs-ty/">Pyrefly vs. ty: Comparing Python&#8217;s Two New Rust-Based Type Checkers</a></h4><p>Last month, two new Rust-based Python type checkers <code>pyrefly</code> and <code>ty</code> were released. Both of them are in the alpha stage. While they share some similarities, they differ significantly in design and features. In this article, <strong>Edward Li</strong> dove deep into both tools, highlighted their differences and what makes each one unique.</p><h6># Edward Li</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/asyncpg">asyncpg</a></strong> - A fast PostgreSQL Database Client Library for Python/asyncio.</p><p><strong><a href="https://piptrends.com/package/parllama">PAR LLAMA</a></strong> - Terminal UI for Ollama and other LLM providers</p><p><strong><a href="https://piptrends.com/package/fabric">Fabric</a></strong> - High level SSH command execution</p><p><strong><a href="https://piptrends.com/package/dataclasses-json">Dataclasses JSON</a></strong> - Easily serialize dataclasses to and from JSON.</p><p><strong><a href="https://piptrends.com/package/copier">Copier</a></strong> - Library and command-line utility for rendering projects templates.</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_7_0.html">scikit-learn 1.7.0</a></strong></p><p><strong><a href="https://github.com/delta-io/delta/releases">delta-spark 4.0.0</a></strong></p><p><strong><a href="https://github.com/neuralmagic/compressed-tensors/releases/tag/0.10.0">compressed-tensors v0.10.0</a></strong></p><p><strong><a href="https://langfuse.com/changelog/2025-06-05-python-sdk-v3-generally-available">langfuse 3.0.0</a></strong></p><p><strong><a href="https://github.com/crewAIInc/crewAI/releases/tag/0.126.0">crewai 0.126.0</a></strong></p><p><strong><a href="https://github.com/lancedb/lancedb/releases/tag/python-v0.23.0">LanceDB v0.23.0</a></strong></p><p><strong><a href="https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.34.0">opentelemetry-sdk 1.34.0</a></strong></p><p><strong><a href="https://github.com/wandb/wandb/releases/tag/v0.20.0">wandb v0.20.0</a></strong></p><p><strong><a href="https://github.com/deepspeedai/DeepSpeed/releases/tag/v0.17.0">deepspeed v0.17.0</a></strong></p><p><strong><a href="https://github.com/miurahr/py7zr/releases/tag/v1.0.0">py7zr 1.0.0</a></strong></p><p><strong><a href="https://ffmpy.readthedocs.io/0.6.0/">ffmpy 0.6.0</a></strong></p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Namespaces, Anti-Patterns, LlamaDev and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/namespaces-anti-patterns-llamadev</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/namespaces-anti-patterns-llamadev</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 31 May 2025 03:30:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d6564637-ec98-4d1e-84f0-2193eb0bad52_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.python.org/downloads/release/python-3140b2/">Python 3.14.0 beta 2 is here!</a></h4><p>This release, 3.14.0b2, is the first of four planned beta releases.</p><h4><a href="https://pycon-nl.org/papers">PyCon NL CFP is Open</a></h4><p>You have the chance until August 1, 2025, to submit. If you are looking to volunteer, then visit <a href="https://pycon-nl.org/volunteers">this link</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://realpython.com/python-namespace/">Namespaces in Python</a></h4><p>Variables and functions have names and we use those names to refer to them, but how does Python actually keep track of them? The answer lies in <strong>namespaces</strong>. Leodanis Pozo Ramos explained this concept clearly in this Real Python article. He covered what a namespace is in Python, the concept of <strong>scope, </strong>the <strong>LEGB rule</strong> for resolving names, how <code>globals()</code> and <code>locals()</code> work, how to modify variables from different scopes using <code>global</code> and <code>nonlocal</code>, etc.</p><h6># Leodanis Pozo Ramos</h6><div id="youtube2-ts38mSIUPSg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ts38mSIUPSg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ts38mSIUPSg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Arjan Egges shared 10 common Python anti-patterns that often lead to unnecessarily complex code and explained how to avoid them with better alternatives. Some key suggestions: include using modules instead of classes with only static methods, avoiding unnecessary overrides of dunder methods and relying on Python&#8217;s built-in tools and libraries instead of reinventing solutions.</p><h6># Arjan Egges</h6><h4><a href="https://www.llamaindex.ai/blog/python-tooling-at-scale-llamaindex-s-monorepo-overhaul">Python Tooling at Scale: LlamaIndex&#8217;s Monorepo Overhaul</a></h4><p>The LlamaIndex ecosystem has over 650 Python packages in a monorepo, making dependency management and publishing a challenge. To solve this, the team built LlamaDev and used <code>uv</code> it for improved performance. In this post, Massimiliano Pippi explained the issues they faced, what they tried and why they ultimately created LlamaDev.</p><h6># Massimiliano Pippi</h6><div id="youtube2-jGg_1h0qzaM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;jGg_1h0qzaM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/jGg_1h0qzaM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>LangGraph is a powerful library for creating advanced conversational AI workflows. If you're interested in learning how to use it and want to build your own AI agent, check out the freeCodeCamp course by Vaibhav Mehra. It's a great starting point to explore LangGraph in action.</p><h6># Vaibhav Mehra</h6><h4><a href="https://medium.com/@tamaxhh_/from-numbers-to-narrative-how-i-use-data-science-to-decode-market-trends-c3ebfa07f3ca">From Numbers to Narrative: How I Use Data Science to Decode Market Trends</a></h4><p>If you&#8217;re looking to start building prediction models, stock price prediction is a great choice; it can be as simple or as complex as you want. A good starting point is this article by Altamash Ansari, where he shared how to build a basic model that predicts stock prices using historical data.</p><h6># Altamash Ansari</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/pytermtk">pyTermTk</a></strong> - Python Terminal Toolkit - a Spiced Up Cross Compatible TUI Library &#127798;&#65039;</p><p><strong><a href="https://piptrends.com/package/structlog">structlog</a></strong> - Structured Logging for Python</p><p><strong><a href="https://piptrends.com/package/opik">Opik</a></strong> - Debug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards</p><p><strong><a href="https://piptrends.com/package/rpy2">rpy2</a></strong> - Python interface to the R language (embedded R)</p><p><strong><a href="https://piptrends.com/package/fused">Fused</a></strong> - A Python library to code, scale, and ship geospatial workflows of any size.</p><div><hr></div><h4>Recent Noteworthy Package Releases</h4><p><strong><a href="https://github.com/delta-io/delta-rs/releases/tag/python-v1.0.0">Deltalake 1.0.0</a></strong></p><p><strong><a href="https://github.com/confident-ai/deepeval/releases/tag/v3.0">DeepEval v3.0</a></strong></p><p><strong><a href="https://github.com/pytest-dev/pytest-asyncio/releases/tag/v1.0.0">pytest-asyncio 1.0.0</a></strong></p><p><strong><a href="https://piptrends.com/package/curlify">Curlify v3.0.0</a></strong></p><p><strong><a href="https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst">cachetools v6.0.0</a></strong></p><p><strong><a href="https://spark.apache.org/releases/spark-release-4-0-0.html">Apache Spark 4.0.0</a></strong></p><p><em><a href="https://piptrends.com/recent-releases">Want More? Click Here</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[PyPI's test suite 81% faster, Interactive reStructuredText Tutorial and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/pypis-test-suite-81-faster-interactive</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/pypis-test-suite-81-faster-interactive</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 24 May 2025 03:30:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a926d281-222b-434d-9a61-5a125d075519_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.youtube.com/watch?v=pqBqdNIPrbo">Python: The Documentary [OFFICIAL TRAILER]</a></h4><h4><a href="https://cryptography.io/en/latest/changelog/#v45-0-0">PyCA cryptography 45.0 released</a></h4><h4><a href="https://amsterdam.pydata.org/cfp">PyData Amsterdam CALL FOR PROPOSALS</a></h4><h4><a href="https://github.com/pydata/sparse/releases/tag/0.17.0">PyData/Sparse 0.17.0 released</a></h4><h4><a href="https://www.youtube.com/playlist?list=PL2Uw4_HvXqvb98mQjN0-rYQjdDxJ_hcrs">PyCon US 2025 Videos Playlist</a></h4><h4><a href="https://web3py.readthedocs.io/en/stable/release_notes.html">web3.py v7.12.0 released</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://blog.trailofbits.com/2025/05/01/making-pypis-test-suite-81-faster/">Making PyPI's test suite 81% faster</a></h4><p>The Trail of Bits team managed to cut down PyPI&#8217;s test suite runtime from 163 seconds to just 30 - a remarkable 81% improvement. In their write-up, they detailed the steps that made it possible: using <code>pytest-xdist</code> for parallel test execution, leveraging Python 3.12&#8217;s <code>sys.monitoring</code>, configuring <code>testpaths</code>, removing unnecessary imports, etc.</p><h6># Trail of Bits</h6><h4><a href="https://rst-tutorial.yakimka.me/">Interactive reStructuredText Tutorial</a></h4><p>Looking to learn or practice reStructuredText? This interactive tutorial site is a great place to start. It covers everything from basic syntax and inline markup to advanced topics like directives, roles, tables and figures - all in a hands-on playground format.</p><h6># yakimka</h6><h4><a href="https://leapcell.medium.com/leapcell-the-next-gen-serverless-platform-for-python-app-hosting-0722d1b32047">SQLAlchemy 2.0: The Most Powerful ORM for Python Yet</a></h4><p>SQLAlchemy 2.0 has been around for a while and it brings some major changes compared to 1.x, like replacing <code>query</code> with <code>select</code> for fetching data. In this article, the Leapcell team gave a thorough walkthrough of how to use SQLAlchemy from setting up a database connection to performing batch inserts.</p><h6># Leapcell</h6><h4><a href="https://corgea.com/Learn/django-security-best-practices-a-comprehensive-guid-for-software-engineers">Django Security Best Practices: A Comprehensive Guide for Software Engineers</a></h4><p>A vulnerable web app can lead to data loss, loss of user trust and even legal trouble. That&#8217;s why securing it is crucial. In this article, Ahmad Sadeddin shared Django security best practices like enforcing HTTPS, enabling Django&#8217;s built-in security features, adding rate limiting and more.</p><h6># Ahmad Sadeddin</h6><h4><a href="https://labs.quansight.org/blog/free-threaded-one-year-recap">The first year of free-threaded Python</a></h4><p>Nathan Goldbaum shared the story of the first year of efforts on Python&#8217;s free-threaded build about how the Quansight team played a key role in making it usable with real production workflows, even those involving complex dependency stacks.</p><h6># Nathan Goldbaum</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/nglview">nglview</a></strong> - IPython widget to interactively view molecular structures and trajectories.</p><p><strong><a href="https://piptrends.com/package/pyautogen">AG2 (formerly AutoGen)</a></strong> - A programming framework for agentic AI</p><p><strong><a href="https://piptrends.com/package/nbdev">nbdev</a></strong> - Create delightful software with Jupyter Notebooks</p><p><strong><a href="https://piptrends.com/package/tyro">tyro</a></strong> - CLI interfaces &amp; config objects, from types</p><p><strong><a href="https://piptrends.com/package/django-ninja">Django Ninja</a></strong> - A web framework for building APIs with Django and Python 3.6+ type hints.</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://2025.pycon.it/en">PyCon Italia 2025</a></strong><br>May 28 &#8211; 31, 2025</p><p><strong><a href="https://www.meetup.com/pyladiesams/events/307652222/">PyLadies Amsterdam: Dapr in Action: From Core Concepts to AI Agents</a></strong><br>May 27, 2025</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Pyrefly, Search to Your Django Site with Meilisearch, PEP 751 and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/pyrefly-search-to-your-django-site</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/pyrefly-search-to-your-django-site</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 17 May 2025 03:30:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0e1a0183-4114-4106-b8e0-b99136a7a4b4_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://fastapicloud.com/blog/fastapi-cloud-by-the-same-team-behind-fastapi">By The Same Team Behind FastAPI - FastAPI Cloud &#8212; You code. We Cloud.</a></h4><p>FastAPI creator Sebasti&#225;n Ram&#237;rez announced FastAPI Cloud, a service to streamline deployment of FastAPI applications.</p><h4><a href="https://pyfound.blogspot.com/2025/05/announcing-python-software-foundation.html">Announcing Python Software Foundation Fellow Members for Q1 2025!</a></h4><h4><a href="https://www.djangoproject.com/weblog/2025/may/07/security-releases/">Django security releases issued: 5.2.1, 5.1.9 and 4.2.21</a></h4><h4><a href="https://forms.gle/WZrG1eTjU51dsdnR7">&#127472;&#127479; &#127897;&#65039;  PyCon KOREA CFP OPEN</a></h4><h4><a href="https://engineering.fb.com/2025/05/15/developer-tools/introducing-pyrefly-a-new-type-checker-and-ide-experience-for-python/">Introducing Pyrefly: A new type checker and IDE experience for Python</a></h4><p>Facebook team announced an alpha version of Pyrefly, an open-source Python type checker and IDE extension crafted in Rust.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://www.revsys.com/tidbits/how-to-add-blazing-fast-search-to-your-django-site-with-meilisearch/">How to Add Blazing Fast Search to Your Django Site with Meilisearch</a></h4><p>A strong search feature improves user experience, especially on e-commerce sites where customers might only remember part of a product name or its use. Smart autocomplete and relevant suggestions not only save time but also boost sales. In this blog post, Lacey Henschel shared how she built just that for a client using Meilisearch with Django, walked through the setup and implementation with a clear example.</p><h6># Lacey Henschel</h6><h4><a href="https://reinforcedknowledge.com/python-project-management-and-packaging-pep-751-update-and-some-of-the-remaining-issues-of-packaging/">Python project management and packaging pep 751 update and some of the remaining issues of packaging</a></h4><p>PEP 751 has been accepted. A big step toward making Python dependency installation more reproducible. If you want to deeply understand why this matters, what problems it solves, and how it actually works, this article is a great place to start.</p><h6># Reinforced Knowledge</h6><h4><a href="https://dev.indooroutdoor.io/asyncio-demystified-rebuilding-it-from-scratch-one-yield-at-a-time">Asyncio Demystified: Rebuilding it From Scratch One Yield at a Time</a></h4><p>If you really want to understand a concept deeply, building a simple version of it can help a lot. Jb Rocher took this approach to learn how <code>asyncio</code> works. In his article, he walked through creating a basic version of <code>asyncio</code>, showing how generators and futures are its core building blocks. It&#8217;s a great read if you want to demystify asynchronous programming in Python.</p><h6># Jb Rocher</h6><h4><a href="https://mathspp.com/blog/module-enum-overview">Module enum overview</a></h4><p>Enums can make your code more readable, safer and easier to maintain. If you want a solid overview of Python&#8217;s <code>enum</code> module, check out this article by Rodrigo. He covered everything from basic <code>Enum</code> usage to <code>auto</code>, <code>StrEnum</code>, <code>Flags</code> and more. It&#8217;s a great way to learn the full range of what Python enums offer.</p><h6># Rodrigo</h6><h4><a href="https://gauravbytes.hashnode.dev/how-i-created-an-mcp-server-for-postgresql-to-power-ai-agents-components-architecture-and-real-testing">How I Created an MCP Server for PostgreSQL to Power AI Agents &#8212; Components, Architecture &amp; Real Testing</a></h4><p>Model Context Protocol (MCP) helps AI models connect with real-world data, tools and services. If you're thinking about building your own MCP server to read files, access databases or interact with local tools, check out this article by Gaurav Kumar. He showed how to create a simple MCP server for PostgreSQL.</p><h6># Gaurav Kumar</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/ase">ASE</a></strong> - Atomic Simulation Environment: A Python library for working with atoms</p><p><strong><a href="https://piptrends.com/package/sktime">sktime</a></strong> - A unified framework for machine learning with time series</p><p><strong><a href="https://piptrends.com/package/snakeviz">SnakeViz</a></strong> - A web-based viewer for Python profiler output</p><p><strong><a href="https://piptrends.com/package/shiny">Shiny</a></strong> - A web development framework for Python.</p><p><strong><a href="https://piptrends.com/package/pyaudio">PyAudio</a></strong> - PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library.</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://www.meetup.com/pydatadelhi/events/307766123/">PyData Delhi x PyDelhi Meetup</a></strong><br>May 17, 2025</p><p><strong><a href="https://www.meetup.com/django-cologne/events/307560204/">Django Meetup Vol. 66 / Decoupling the Monolith</a></strong><br>May 20, 2025</p><p><strong><a href="https://www.meetup.com/iepython/events/304957314/">Inland Empire Python Users Group monthly meeting</a></strong><br>May 20, 2025</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A practical guide to building agents, 10 Free Data Science Books For 2025, Python 3.14.0 beta 1 is here and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/a-practical-guide-to-building-agents</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/a-practical-guide-to-building-agents</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 10 May 2025 03:30:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1c389d04-3d5e-4eb7-b383-17178809cadb_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://www.python.org/downloads/release/python-3140b1/">Python 3.14.0 beta 1 is here!</a></h4><p>Python 3.14 is still in development. This release, 3.14.0b1, is the first of four planned beta releases.</p><h4><a href="https://github.com/astral-sh/ty">Ty: An extremely fast Python type checker and language server, written in Rust</a></h4><p>Released a couple of days ago by Astral, it has already hot topic in many places and got a lot of GitHub Stars too.</p><h4><a href="https://textual.textualize.io/blog/2025/05/07/the-future-of-textualize/">Textualize, the company, will be wrapping up in the next few weeks</a></h4><p>It&#8217;s sad news, but unfortunately, we need to accept.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://www.kdnuggets.com/10-free-data-science-books-for-2025">10 Free Data Science Books For 2025</a></h4><p>Looking to level up your data science skills? Cornellius Yudha Wijaya has shared an excellent list of free data science books in this article - perfect for expanding your knowledge without spending a dime.</p><h6># Cornellius Yudha Wijaya</h6><h4><a href="https://ntietz.com/blog/python-is-an-interpreted-language-with-a-compiler/">Python is an interpreted language with a compiler</a></h4><p>We often hear Python is an interpreted language and Java is a compiled one. So, does that mean Python doesn&#8217;t use a compiler and Java doesn&#8217;t use an interpreter? Not really. In this article, Nicole Tietz-Sokolskaya explained clearly. It might not answer everything, but it will help you better understand how programming languages really work or give you new questions to explore.</p><h6># Nicole Tietz-Sokolskaya</h6><h4><a href="https://brandonchinn178.github.io/posts/2025/04/26/debugging-python-fstring-errors/">Debugging Python f-string errors</a></h4><p>We all love f-strings in Python. You might think <code>f"{x}"</code> is just the same as <code>str(x)</code> - and that's mostly true, but not completely. Behind the scenes, <code>f"{x}"</code> actually calls <code>format(x, "")</code> or <code>type(x).__format__(x, "")</code>. Brandon Chinn ran into a <code>TypeError</code> while using an f-string, which led him to investigate what was really going on. He shared what he discovered in this interesting blog post.</p><h6># Brandon Chinn</h6><h4><a href="https://blog.edward-li.com/tech/advanced-python-features/">14 Advanced Python Features</a></h4><p>When someone asks about advanced Python features, most people mention generators, comprehensions, OOP or asyncio. But Python has a lot more to offer. In this article, Edward Li shared 14 unique, underrated advanced features - like typing overloads, protocols and more - each explained with clear examples.</p><h6># Edward Li</h6><h4><a href="https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf">A practical guide to building agents</a></h4><p>Thinking of creating your first agent? Check out this guide by OpenAI - it&#8217;s packed with practical tips and best practices. It also covers frameworks for designing agent logic and orchestration and how to ensure your agents run safely, predictably and effectively.</p><h6># OpenAI</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://github.com/skulpt/skulpt">Skulpt</a></strong> - It is a Javascript implementation of the Python programming language</p><p><strong><a href="https://piptrends.com/package/flower">Flower</a></strong> - Real-time monitor and web admin for Celery distributed task queue</p><p><strong><a href="https://piptrends.com/package/dbos">DBOS</a></strong> - Ultra-lightweight durable execution in Python</p><p><strong><a href="https://piptrends.com/package/distlib">Distlib</a></strong> - A low-level library which implements some Python packaging standards (PEPs) and which could be used by third-party packaging tools to achieve interoperability.</p><p><strong><a href="https://github.com/axorax/tkforge">TkForge</a></strong> - Drag &amp; drop in Figma to create a Python GUI with ease</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://us.pycon.org/2025/">PyCon US 2025</a></strong><br>May 14 &#8211; 22, 2025</p><p><strong><a href="https://www.meetup.com/leipzig-python-user-group/events/307442095/">Leipzig Python User Group Meeting</a></strong><br>May 13, 2025</p><p><strong><a href="https://www.meetup.com/python-mexico/events/307557668/">PythonCDMX &#128013; MAY 2025 - Publicando un paquete en PyPI</a></strong><br>May 13, 2025</p><p><strong><a href="https://www.meetup.com/pycologne/events/306982139/">PyCologne Discussions</a></strong><br>May 14, 2025</p><p><strong><a href="https://www.meetup.com/pythonireland/events/307254342/">Python Ireland May 2025 Meetup</a></strong><br>May 14, 2025</p><p><strong><a href="https://piterpy.com/en/">PiterPy 2025</a></strong><br>May 16 &#8211; 17, 2025</p><p><strong><a href="https://pygrunn.org/">PyGrunn 2025</a></strong><br>May 16, 2025</p><p><strong><a href="https://pycaxias.com.br/">PyCaxias 2025</a></strong><br>May 17, 2025</p><p><strong><a href="https://www.meetup.com/bangpypers/events/304998043/">BangPypers - Bangalore Python Users Group</a></strong><br>May 17, 2025</p><p><strong><a href="https://djangogirls.org/pt-br/caxiasdosul/">Django Girls Caxias do Sul 2025</a></strong><br>May 18, 2025</p><p><strong><a href="https://www.meetup.com/pyladiesdublin/events/307579725/">PyLadies Dublin May Meetup @ Pinterest</a></strong><br>May 20, 2025</p><p><strong><a href="https://www.meetup.com/santa-cruz-python/events/301921801/">Santa Cruz Python Meetup: Vibe Coding: why, when, how</a></strong><br>May 22, 2025</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What's new in pip 25.1, copier, Python 3.15 Release Schedule and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/whats-new-in-pip-251-copier-python</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/whats-new-in-pip-251-copier-python</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 03 May 2025 03:30:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0f49e191-de79-46aa-871a-bdaa11758fcd_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://peps.python.org/pep-0787/">PEP 787: Safer Subprocess Usage Using t-strings (Postponed to 3.15)</a></h4><h4><a href="https://www.youtube.com/playlist?list=PLGVZCDnMOq0otKlHvES9iBFtVQ71yZhed">PyData Global 2024 videos are out</a></h4><h4><strong><a href="https://peps.python.org/pep-0790/">PEP 790 &#8211; Python 3.15 Release Schedule</a></strong></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://ichard26.github.io/blog/2025/04/whats-new-in-pip-25.1/">What's new in pip 25.1 - Dependency groups!</a></h4><p>Pip 25.1 is out with some exciting updates! This release introduced a new install progress bar, experimental support for lockfile generation with <code>pip lock</code> (PEP 751) and support for Dependency Groups (PEP 735). Richard shared these features and more in his latest blog post - definitely worth a read if you want to stay up to date.</p><h6># Richard</h6><h4><a href="https://blog.dusktreader.dev/2025/04/06/bootstrapping-python-projects-with-copier/">Bootstrapping Python projects with copier</a></h4><p>If you frequently create new Python projects, you&#8217;ve probably used cookiecutter templates. But if you're looking for an alternative with more flexibility, <em>copier</em> package is a great option. In this article, Tucker Beck showed how to build and use project templates with <em>copier</em>.</p><h6># Tucker Beck</h6><h4><a href="https://www.landh.tech/blog/20250327-we-hacked-gemini-source-code/">We hacked Google&#8217;s A.I Gemini and leaked its source code (at least some part)</a></h4><p>Roni "Lupin" Carta shared their hacking journey targeting Google&#8217;s latest AI, Gemini, as part of the bugSWAT program. In the write-up, he detailed their approach, the techniques they used and how they ultimately discovered a vulnerability.</p><h6># Roni "Lupin" Carta</h6><h4><a href="https://ashishb.net/programming/python-in-production-2/">How to run Python in production</a></h4><p>When preparing to run your Python application in production, taking a few key precautions can save you from major issues later, like preventing secret leaks, ensuring legal compliance and more. In this article, Ashish Bhatia shared some of the important steps to consider before going live.</p><h6># Ashish Bhatia</h6><h4><a href="https://www.pythonguis.com/tutorials/getting-started-with-streamlit/">Getting Started with Streamlit</a></h4><p>Streamlit has made it easy for data scientists to turn their work into shareable web apps. If you're just getting started, check out this beginner-friendly tutorial by Martin Fitzpatrick. He walked through adding titles, headings, text, buttons, dropdowns, sliders and a sidebar. Gave a solid idea to build simple and interactive apps.</p><h6># Martin Fitzpatrick</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/pyftpdlib">pyftpdlib</a></strong> - Extremely fast and scalable Python FTP server library</p><p><strong><a href="https://piptrends.com/package/param">Param</a></strong> - Make your Python code clearer and more reliable by declaring Parameters</p><p><strong><a href="https://piptrends.com/package/pyedifice">Edifice</a></strong> - Declarative GUI framework for Python and Qt</p><p><strong><a href="https://piptrends.com/package/pytest-benchmark">pytest-benchmark</a></strong> - A <em>pytest</em> fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer.</p><p><strong><a href="https://piptrends.com/package/manim">Manim</a></strong> - A community-maintained Python framework for creating mathematical animations.</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://www.meetup.com/dfwpython/events/307348102/">PyTexas Monthly Meetup</a></strong><br>May 7, 2025</p><p><strong><a href="https://www.meetup.com/python-atlanta/events/302382684/">Python Atlanta Meetup</a></strong><br>May 8, 2025</p><p><strong><a href="https://www.edukawa.org/pl/hackthelibrary">BookQuest - Gamifying Libraries for Kids with Python workshop</a></strong><br>May 10, 2025</p><p><strong><a href="https://nokidbehind.org/bamenda">Bamenda - Creating Python Communities and outreach</a></strong><br>May 10, 2025</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Optimize your Python Program for Slowness, Mutable default arguments and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/optimize-your-python-program-for</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/optimize-your-python-program-for</guid><dc:creator><![CDATA[Ashok Tankala]]></dc:creator><pubDate>Sat, 26 Apr 2025 03:30:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/889e7065-6634-43de-915d-bbd3d03e3bfd_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://peps.python.org/pep-0750/">PEP 750 &#8211; Template Strings accepted</a></h4><h4><a href="https://www.theverge.com/news/650467/wikipedia-kaggle-partnership-ai-dataset-machine-learning">Wikipedia is giving AI developers its data to fend off bot scrapers</a></h4><p>If you're planning to crawl Wikipedia for AI training, you might want to skip the hassle - Wikipedia has released dataset on Kaggle that's specifically optimised for training AI models.</p><h4><a href="https://airflow.apache.org/blog/airflow-three-point-oh-is-here/">Apache Airflow 3.0 is out!</a></h4><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://towardsdatascience.com/how-to-optimize-your-python-program-for-slowness/">How to Optimize your Python Program for Slowness</a></h4><p>We all aim to make our programs faster, but have you ever tried doing the opposite? I mean, intentionally making them slower. Understanding how to write painfully slow code can actually help you recognise performance pitfalls. In this article, Carl Kadie demonstrated how a simple nested loop can create a program that runs longer than the lifetime of the universe. He dove into concepts like tetration (yes, it goes beyond exponentiation), 5-State Turing Machines and how Python&#8217;s <code>int</code> type can drastically affect performance.</p><h6># Carl Kadie</h6><div id="youtube2-5avSMc79V-w" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5avSMc79V-w&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5avSMc79V-w?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This course by Vuk Rosi&#263; gives a complete deep dive into DeepSeek V3, a state-of-the-art deep learning model. He covered theoretical explanations with step-by-step coding instructions to make things easier to understand and implement the model from scratch.</p><h6># Vuk Rosi&#263;</h6><h4><a href="https://blog.appsignal.com/2025/04/02/an-introduction-to-testing-in-python-flask.html">An Introduction to Testing in Python Flask</a></h4><p>Writing tests is one of the best ways to ensure code quality, streamline development and boost confidence when making changes. If you're looking to learn how to write tests for your Flask application, check out this article by Federico Trotta. He walked through everything from writing basic tests to mocking external services, It&#8217;s a great resource for levelling up your Flask testing skills.</p><h6># Federico Trotta</h6><h4><a href="https://www.pythonmorsels.com/mutable-default-arguments/">Mutable default arguments</a></h4><p>Default values in function arguments are super handy, but using mutable objects (like lists or dictionaries) as defaults can cause unexpected behaviour, because they&#8217;re shared across calls. Even beyond mutables, shared default values can lead to bugs. If you still want to use them safely, check out this article by Trey Hunner. He explained them with clear examples and offered practical solutions.</p><h6># Trey Hunner</h6><h4><a href="https://vectorfold.studio/blog/transformers">Building Transformers from Scratch</a></h4><p>Transformers are at the core of all modern LLMs. Understanding how they work can deepen your grasp of these powerful models. If you're curious to learn more, check out this article by Stephen Diehl. He walked through building transformers from scratch and explained the concepts in a hands-on, approachable way.</p><h6># Stephen Diehl</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/blosc2">Python-Blosc2</a></strong> - A fast &amp; compressed ndarray library with a flexible compute engine.</p><p><strong><a href="https://piptrends.com/package/pipefunc">PipeFunc</a></strong> - A Python library for defining, managing, and executing function pipelines.</p><p><strong><a href="https://piptrends.com/package/narwhals">Narwhals</a></strong> - Extremely lightweight compatibility layer between dataframe libraries</p><p><strong><a href="https://piptrends.com/package/pytest-testmon">pytest-testmon</a></strong> - selects tests affected by changed files and methods</p><p><strong><a href="https://piptrends.com/package/patito">Patito</a></strong> - A dataframe modelling library built on top of polars and pydantic.</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://www.meetup.com/pyladiesams/events/307315014/">PyLadies Amsterdam: Open source, open pipelines: Data ingestion with modern data stack</a></strong><br>April 29, 2025</p><p><strong><a href="https://pycamp.es/">PyCamp Espa&#241;a 2025</a></strong><br>May 1 &#8211; 4, 2025</p><p><strong><a href="https://www.meetup.com/canberra-python-meetup-group/events/305926751/">&#128013; Canberra Python Meetup - Use Python as your shell with Xonsh by Leo Broska</a></strong><br>May 1, 2025</p><p><strong><a href="https://www.meetup.com/michigan-python/events/305384919/">Michigan Python May Meeting</a></strong><br>May 1, 2025</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Django 5.2, Pydantic 2.11, Python 3.14, Outlier Detection and more]]></title><description><![CDATA[with some more interesting news, articles, packages and projects]]></description><link>https://newsletter.piptrends.com/p/django-52-pydantic-211-python-314</link><guid isPermaLink="false">https://newsletter.piptrends.com/p/django-52-pydantic-211-python-314</guid><pubDate>Thu, 17 Apr 2025 14:07:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/20de02a0-beda-4ad8-8f87-61bc35afcd9d_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>News</h3><div><hr></div><h4><a href="https://thenewstack.io/nvidia-finally-adds-native-python-support-to-cuda/">NVIDIA Finally Adds Native Python Support to CUDA</a></h4><p>For years, NVIDIA&#8217;s CUDA toolkit lacked native Python support, but that&#8217;s finally changed.</p><h4><a href="https://pydantic.dev/articles/pydantic-v2-11-release">Pydantic v2.11 Released!</a></h4><p>This release brought significant performance boosts and powerful new features that can make a real difference in your projects. It might be old news, but it's definitely worth knowing.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Articles</h3><div><hr></div><h4><a href="https://adamj.eu/tech/2025/04/07/django-whats-new-5.2/">Django: what&#8217;s new in 5.2</a></h4><p>Django 5.2 was released on April 2nd, and it brought some exciting new features. In this article, Adam Johnson shared several highlights with examples - like automatic model imports in the shell, support for composite primary keys, a simplified way to override <code>BoundField</code>, etc.</p><h6># Adam Johnson</h6><div id="youtube2-hzys1_xmLPc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;hzys1_xmLPc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/hzys1_xmLPc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The final alpha release for Python 3.14 dropped on April 8th, which means no new features will be added from here on out. The official release is set for October - yep, Python 3.14 (pi &#128521;). If you're curious about what's coming&#8212;like PEP 765, PEP 758, PEP 649, performance boosts and more&#8212;check out this great breakdown video by Denis Gruzdev.</p><h6># Denis Gruzdev</h6><div id="youtube2-zGkVKix_CRU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zGkVKix_CRU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zGkVKix_CRU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>AI agents are making tasks like data scraping much easier. If you're exploring options, the <strong>Browser Use</strong> package is a solid one to check out. In this video, Tim Ruscica (aka <em>Tech With Tim</em>) showed how to use it and how it simplifies the scraping process. This tool/package is not perfect, but it is definitely a great starting point for experimentation.</p><h6># Tim Ruscica (aka <em>Tech With Tim</em>)</h6><h4><a href="https://talkpython.fm/episodes/show/497/outlier-detection-with-python">Outlier Detection with Python</a></h4><p>Outliers can reveal everything from fraud to fascinating patterns in your data. In this episode of <em>Talk Python to Me</em>, Brett Kennedy dove into outlier detection using Python world - covered many things related to it. A great listen if you're curious about spotting the unusual in your datasets.</p><h6># Brett Kennedy</h6><h4><a href="https://pybit.es/articles/generator-mechanics-expressions-and-efficiency/">Optimizing Python: Understanding Generator Mechanics, Expressions, And Efficiency</a></h4><p>Python generators provide a clean and memory-efficient way to handle iteration. They&#8217;re especially useful for tasks like processing large datasets, handling infinite sequences or reading big files without loading everything into memory. If you want to dive deeper into how and when to use them, check out this great article by Josh Engroff.</p><h6># Josh Engroff</h6><div><hr></div><h4>Interesting Packages and Projects to Explore</h4><p><strong><a href="https://piptrends.com/package/py-spy">py-spy</a></strong> - Sampling profiler for Python programs</p><p><strong><a href="https://piptrends.com/package/robyn">Robyn</a></strong> - A Super Fast Async Python Web Framework with a Rust runtime.</p><p><strong><a href="https://piptrends.com/package/pyfunctional">PyFunctional</a></strong> - Package for creating data pipelines with chain functional programming</p><p><strong><a href="https://piptrends.com/package/asv">airspeed velocity (asv)</a></strong> - A simple Python history benchmarking tool</p><p><strong><a href="https://piptrends.com/package/mininterface">Mininterface</a></strong> - A minimal interface to a Python application (GUI, TUI, CLI, web)</p><div><hr></div><h4>About Upcoming Python Events</h4><p><strong><a href="https://2025.djangocon.eu/">DjangoCon Europe 2025</a></strong><br>April 23 &#8211; 27, 2025</p><p><strong><a href="https://2025.pycon.de/">PyCon DE &amp; PyData 2025</a></strong><br>April 23 &#8211; 25, 2025</p><p><strong><a href="https://pycon.lt/">PyCon Lithuania 2025</a></strong><br>April 23 &#8211; 25, 2025</p><p><strong><a href="https://www.meetup.com/pykampala/events/307232457/">PyKla monthly meetup</a></strong><br>April 19, 2025</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.piptrends.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading pip Trends Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>