<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Agentic on BlueberryPy</title><description>Recent content in Agentic on BlueberryPy</description><link>https://blueberrypy.netlify.app/tags/agentic/</link><language>en-us</language><item><title>This Month for Pythonistas - January 2026</title><link>https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2026-01/</link><guid isPermaLink="true">https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2026-01/</guid><description>&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; datetime &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; date&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(date.today().year, date.today().month)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 2026 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt=&quot;issue-2026-01&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1280&quot; height=&quot;720&quot; src=&quot;/_astro/splash.DGhLuMvf_Z1AuGkc.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;Welcome back Pythonistas and Happy New Year 🎉! This is the first issue of 2026, and I’m excited to kick off another year of “This Month for Pythonistas” with curated Python news, tutorials, articles, podcasts and community highlights. And as a “special” issue it would cover also retrospectives of 2025 and expectations for 2026.&lt;/p&gt;
&lt;p&gt;Before we continue, please note that this blog is synced across the following platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberry-py.github.io/blog/post/this-month-for-pythonistas-2026-01/&quot;&gt;Github Pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2026-01/&quot;&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.onrender.com/post/this-month-for-pythonistas-2026-01/&quot;&gt;Render&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy-blog.vercel.app/post/this-month-for-pythonistas-2026-01/&quot;&gt;Vercel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ready? Let’s get started!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;events--social&quot;&gt;Events &amp;amp; Social&lt;/h2&gt;
&lt;h3 id=&quot;europython-2026-location-revealed&quot;&gt;EuroPython 2026 Location Revealed&lt;/h3&gt;
&lt;p&gt;EuroPython 2026 will take place in Kraków, Poland from 13th to 19th July, 2026. The CFP (Call for Proposals) is open now until 15th of February. This is also the 25th anniversary of EuroPython. Learn more &lt;a href=&quot;https://ep2026.europython.eu/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;anthropic-invests-15-million-in-the-python-software-foundation-and-open-source-security&quot;&gt;&lt;a href=&quot;https://pyfound.blogspot.com/2025/12/anthropic-invests-in-python.html&quot;&gt;Anthropic invests $1.5 million in the Python Software Foundation and open source security&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Anthropic invests $1.5M over two years in the Python Software Foundation (PSF). Funds will enhance Python ecosystem security (e.g., automated PyPI package reviews to ward off supply-chain attacks) and sustain the PSF’s core work supporting CPython, its global community and infrastructure.&lt;/p&gt;
&lt;h3 id=&quot;2026-python-developers-survey&quot;&gt;&lt;a href=&quot;https://surveys.jetbrains.com/s3/python-developers-survey-2026&quot;&gt;2026 Python Developers Survey&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is the nineth official Developer Survey by PSF, in partnership with JetBrains. Completing the survey contributes to understanding the state of Python development and the Python community.&lt;/p&gt;
&lt;h3 id=&quot;pep-686---make-utf-8-mode-default&quot;&gt;&lt;a href=&quot;https://peps.python.org/pep-0686/&quot;&gt;PEP 686 - Make UTF-8 mode default&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;PEP 686 is &lt;em&gt;Final&lt;/em&gt;. Starting from Python 3.15, Python will use UTF-8 mode by default in text encoding. This change represents a significant step toward modernizing Python’s text handling while maintaining backward compatibility through opt-out mechanisms and warnings.&lt;/p&gt;
&lt;h2 id=&quot;new-versions&quot;&gt;New Versions&lt;/h2&gt;
&lt;h3 id=&quot;python-3150-alpha-5&quot;&gt;Python 3.15.0 alpha 5&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://devguide.python.org/_static/release-cycle.svg&quot; alt=&quot;python-release-cycle&quot;&gt;&lt;/p&gt;
&lt;p&gt;Here comes the &lt;a href=&quot;https://www.python.org/downloads/release/python-3150a5/&quot;&gt;fifth&lt;/a&gt; of &lt;del&gt;seven&lt;/del&gt; eight planned alpha releases of Python 3.15, just a couple of days after alpha 4 was released.&lt;/p&gt;
&lt;h3 id=&quot;pandas-300&quot;&gt;Pandas 3.0.0&lt;/h3&gt;
&lt;p&gt;Pandas 3.0.0 is the long-awaited major release which brings significant improvements to pandas, but also features some potentially breaking changes. The release notes can be found &lt;a href=&quot;https://pandas.pydata.org/docs/whatsnew/v3.0.0.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;fastmcp-300-beta-1&quot;&gt;FastMCP 3.0.0 beta 1&lt;/h3&gt;
&lt;p&gt;FastMCP 3.0 introduces a redesigned framework for building Model Context Protocol servers. Built around three primitives — Components, Providers, and Transforms — it transforms from simple tool servers into dynamic “Context Applications” that intelligently manage information for AI agents. Read more at &lt;a href=&quot;https://www.jlowin.dev/blog/fastmcp-3-whats-new&quot;&gt;What’s New in FastMCP 3.0&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;tutorials&quot;&gt;Tutorials&lt;/h2&gt;
&lt;h3 id=&quot;deeplearningais-document-ai-from-ocr-to-agentic-doc-extraction-from-landingai&quot;&gt;Deeplearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/document-ai-from-ocr-to-agentic-doc-extraction/&quot;&gt;Document AI: From OCR to Agentic Doc Extraction&lt;/a&gt; from LandingAI&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;This course shows you how to build agentic workflows that process documents the way humans do: breaking them into parts, examining each piece carefully, and extracting information through multiple iterations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;deeplearningais-gemini-cli-code--create-with-an-open-source-agent-from-google&quot;&gt;Deeplearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/gemini-cli-code-and-create-with-an-open-source-agent/&quot;&gt;Gemini CLI: Code &amp;amp; Create with an Open-Source Agent&lt;/a&gt; from Google&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;In this course, you’ll apply Gemini CLI to software development and creative tasks by building features for an AI conference. You’ll develop a website session catalog, create a data dashboard combining local and cloud data sources, and generate social media content from recordings. You’ll master context management, integrate MCP servers, and orchestrate across multiple services with Gemini CLI extensions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;realpythons-how-to-build-a-personal-python-learning-roadmap&quot;&gt;RealPython’s &lt;a href=&quot;https://realpython.com/build-python-learning-roadmap/&quot;&gt;How to Build a Personal Python Learning Roadmap&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;This tutorial will help you craft a personal Python learning roadmap so you can track your progress and stay accountable to your goals and timeline.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;/h2&gt;
&lt;h3 id=&quot;python-numbers-every-programmer-should-know&quot;&gt;&lt;a href=&quot;https://mkennedy.codes/posts/python-numbers-every-programmer-should-know/&quot;&gt;Python Numbers Every Programmer Should Know&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article from Michael Kennedy outlines key Python performance and memory metrics for developers. Latency benchmarks include fast attribute reads (14 ns), dict lookups (22 ns), and FastAPI’s quick JSON responses (8.63 µs). Memory usage notes are striking: small ints/floats take 28/24 bytes, empty Python processes use ~15.7 MB, and slots-class instances (5 attributes) consume 212 bytes (vs 694 bytes for regular classes). Other stats highlight list append speed (28.7 ns) and SQLite query efficiency. These numbers aid in optimizing performance-sensitive algorithms.&lt;/p&gt;
&lt;h3 id=&quot;recent-optimizations-in-pythons-reference-counting&quot;&gt;&lt;a href=&quot;https://rushter.com/blog/python-refcount/&quot;&gt;Recent optimizations in Python’s Reference Counting&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The article discusses Python 3.14+ optimizations for reference counting in CPython. It introduces a new bytecode instruction &lt;code&gt;LOAD_FAST_BORROW&lt;/code&gt; that avoids incrementing reference counts when loading local variables in hot loops, reducing memory management overhead. This optimization uses static lifetime analysis to ensure safety - borrowed references must be consumed within one code block, used for simple operations, and the source value can’t change during execution. The optimization is similar to Rust’s lifetime analysis and immutable borrowing concept. Additionally, there are ongoing efforts to eliminate redundant reference counting in JIT compiled code, though this is experimental and disabled by default.&lt;/p&gt;
&lt;h3 id=&quot;the-hidden-cost-of-python-dictionaries-and-3-safer-alternatives&quot;&gt;&lt;a href=&quot;https://codecut.ai/hidden-cost-python-dictionaries-safer-alternatives/&quot;&gt;The Hidden Cost of Python Dictionaries (And 3 Safer Alternatives)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article explains the hidden dangers of Python dictionaries: typos in keys cause silent bugs, and type errors lead to data corruption. It presents three safer alternatives with increasing protection:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NamedTuple&lt;/strong&gt; – Fixed structure with IDE autocomplete; immutable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dataclass&lt;/strong&gt; – Mutable fields, safe defaults, custom validation via &lt;code&gt;__post_init__&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pydantic&lt;/strong&gt; – Runtime type enforcement, automatic type coercion, built-in constraints&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The author recommends using dicts for quick prototyping and Pydantic for production code where safety matters.&lt;/p&gt;
&lt;h3 id=&quot;implicit-string-concatenation&quot;&gt;&lt;a href=&quot;https://www.pythonmorsels.com/implicit-string-concatenation/&quot;&gt;Implicit string concatenation&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Python automatically concatenates string literals placed next to each other without any operator - called “implicit string concatenation”. This feature is mainly used for breaking long strings across multiple lines using parentheses for implicit line continuation. However, it can cause bugs when commas are accidentally omitted in lists or function calls. The article recommends avoiding this feature in favor of explicit concatenation with &lt;code&gt;+&lt;/code&gt; or using multiline strings with &lt;code&gt;textwrap.dedent()&lt;/code&gt;, and suggests using linters to prevent accidental usage.&lt;/p&gt;
&lt;h3 id=&quot;what-async-really-means-for-your-python-web-app&quot;&gt;&lt;a href=&quot;https://hackeryarn.com/post/async-python-benchmarks/&quot;&gt;What async really means for your python web app?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Python async web benchmarks reveal surprising results: synchronous Django with database connection pooling consistently outperforms async alternatives. Testing static content, database reads, and contentious writes shows that FastAPI excels only when it’s the sole bottleneck. For typical web services that directly access databases, the database — not the web service — is usually the bottleneck. Async Django shows 10x slower performance than sync Django for static content, while database pooling eliminates sync latency issues without code changes. The article concludes that for most services directly connecting to databases, optimized sync configurations deliver better performance than async alternatives.&lt;/p&gt;
&lt;h3 id=&quot;asyncio-is-neither-fast-nor-slow&quot;&gt;&lt;a href=&quot;https://blog.changs.co.uk/asyncio-is-neither-fast-nor-slow.html&quot;&gt;Asyncio is neither fast nor slow&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article critiques misleading benchmarks comparing Python’s async vs sync web frameworks. The author discovered that performance discrepancies often stem from implementation bugs (like SQLAlchemy fetching all results) rather than &lt;code&gt;asyncio&lt;/code&gt; itself. After proper configuration, async and sync perform similarly.&lt;/p&gt;
&lt;p&gt;The key takeaway: &lt;code&gt;asyncio&lt;/code&gt;’s advantage isn’t speed but resource efficiency — achieving comparable performance without extra threads/processes. The author advises against taking benchmarks at face value and encourages testing for your specific requirements. Performance depends more on implementation details and connection pools than the async/sync paradigm itself.&lt;/p&gt;
&lt;h3 id=&quot;how-to-type-hint-a-decorator-in-python&quot;&gt;&lt;a href=&quot;https://www.blog.pythonlibrary.org/2026/01/14/how-to-type-hint-a-decorator-in-python/&quot;&gt;How to Type Hint a Decorator in Python&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article explains how to properly type hint Python decorators. Using &lt;code&gt;TypeVar&lt;/code&gt; causes mypy errors. Instead, use &lt;code&gt;ParamSpec&lt;/code&gt; with &lt;code&gt;TypeVar&lt;/code&gt; to capture generic parameter and return types. For Python 3.12+, &lt;strong&gt;PEP 695&lt;/strong&gt; offers simplified syntax using square brackets (e.g., &lt;code&gt;def info[**P, R]&lt;/code&gt;) to implicitly declare &lt;code&gt;ParameterSpec&lt;/code&gt;. Both approaches maintain type safety for decorated functions while preserving their original signatures.&lt;/p&gt;
&lt;h3 id=&quot;static-protocols-in-python-behaviour-over-inheritance&quot;&gt;&lt;a href=&quot;https://patrickm.de/static-protocols-in-python/&quot;&gt;Static Protocols in Python: Behaviour Over Inheritance&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article explains static protocols in Python - a way to check object behavior rather than inheritance. Protocols enable structural typing where objects are validated by having required methods/attributes, not by class hierarchy. The author contrasts this with traditional “goose typing” using &lt;code&gt;isinstance()&lt;/code&gt;, showing how protocols reduce coupling and enable static type checking. A real-world ML example demonstrates using a Predictable protocol for models with predict_top_k methods. Static protocols (Python 3.8+) provide type safety while maintaining flexibility, allowing different coding styles to work together without complex inheritance trees. They catch errors at development time rather than runtime.&lt;/p&gt;
&lt;h3 id=&quot;unit-testing-your-codes-performance-part-1-big-o-scaling&quot;&gt;&lt;a href=&quot;https://pythonspeed.com/articles/big-o-tests/&quot;&gt;Unit testing your code’s performance, part 1: Big-O scaling&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article explains how to unit test your Python code’s performance by testing Big-O scalability. It introduces the &lt;code&gt;bigO&lt;/code&gt; library to empirically determine and test algorithm complexity. The author demonstrates how to track function performance, generate reports showing time/memory bounds (like O(n) or O(n²)), and write automated tests that fail when scalability changes. This approach catches critical performance regressions where algorithms become less efficient, which is especially important for processing large datasets. The method is presented as a starting point for performance testing, with plans to cover additional efficiency testing in future articles.&lt;/p&gt;
&lt;h3 id=&quot;how-we-made-pythons-packaging-library-3x-faster&quot;&gt;&lt;a href=&quot;https://iscinumpy.dev/post/packaging-faster/&quot;&gt;How we made Python’s packaging library 3x faster&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Python’s &lt;code&gt;packaging&lt;/code&gt; library was optimized to achieve 3x faster performance in version 26.0rc1. Key improvements include: Version construction became 2x faster, SpecifierSet operations up to 3x faster, and some operations up to 5x faster. Optimizations involved removing redundant &lt;code&gt;NamedTuple&lt;/code&gt; structures, eliminating duplicate &lt;code&gt;Version&lt;/code&gt; creation, using faster regex patterns, replacing &lt;code&gt;singledispatch&lt;/code&gt; with &lt;code&gt;if&lt;/code&gt; statements, and implementing better caching. The team used Python 3.15’s statistical profiler and PyPI metadata to measure performance. These changes significantly speed up dependency resolution for tools like pip, which creates millions of &lt;code&gt;Version&lt;/code&gt; objects during package installation.&lt;/p&gt;
&lt;h3 id=&quot;webassembly-as-a-python-extension-platform&quot;&gt;&lt;a href=&quot;https://nullprogram.com/blog/2026/01/01/&quot;&gt;WebAssembly as a Python extension platform&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This blog post explores using WebAssembly (Wasm) as a Python extension platform. The author discusses two main use cases: (1) replacing Python functions with faster C-compiled-to-Wasm code for 10x performance improvements, and (2) embedding secure crypto libraries like Monocypher in Python applications. Key challenges include handling pointers as unsigned integers, managing memory allocation between host and guest, and working around wasmtime-py limitations.&lt;/p&gt;
&lt;p&gt;The author provides detailed examples showing how to create Python bindings for Wasm modules while avoiding common pitfalls like negative pointer arithmetic. Despite rough edges like large binary sizes and API instability, this approach enables distributing architecture-independent Python packages without requiring native toolchains.&lt;/p&gt;
&lt;h3 id=&quot;the-emperor-has-no-clothes-how-to-code-claude-code-in-200-lines-of-code&quot;&gt;&lt;a href=&quot;https://www.mihaileric.com/The-Emperor-Has-No-Clothes/&quot;&gt;The Emperor Has No Clothes: How to Code Claude Code in 200 Lines of Code&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article reveals that AI coding assistants like Claude Code aren’t magic — they’re built on a simple 200-line Python architecture. The core concept is a conversation loop between an LLM and a toolbox of three essential functions: read files, list files, and edit files.&lt;/p&gt;
&lt;p&gt;The process works by having the LLM decide when to use tools, sending structured tool calls, executing them locally, and feeding results back. The LLM never directly touches the filesystem—it just requests actions that your code performs.&lt;/p&gt;
&lt;p&gt;While production tools add features like better error handling, streaming, and more tools, the fundamental architecture remains this simple request-execute-respond cycle. The author demonstrates how anyone can build a functional coding agent using this straightforward pattern, proving that sophisticated AI coding tools are built on surprisingly simple foundations.&lt;/p&gt;
&lt;h3 id=&quot;the-future-of-software-development-is-software-developers&quot;&gt;&lt;a href=&quot;https://codemanship.wordpress.com/2025/11/25/the-future-of-software-development-is-software-developers/&quot;&gt;The Future of Software Development is Software Developers&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The article argues that despite claims that AI (especially LLMs) will replace software developers, history shows new technologies don’t reduce programming needs but increase demand. The hard part of programming is translating human ambiguity into precise code, which AI struggles with. LLMs often slow development and produce unreliable code. While AI may assist in prototyping or inline completion, developers will remain essential. The current AI hype will likely fade, and businesses should hire and train developers now. The future will see AI as a tool, not a replacement, with more demand for skilled programmers.&lt;/p&gt;
&lt;h3 id=&quot;agent-native-architectures&quot;&gt;&lt;a href=&quot;https://every.to/guides/agent-native&quot;&gt;Agent-native Architectures&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This guide outlines a revolutionary approach to software development where AI agents are first-class citizens, not just add-ons. The core principle: build applications where features aren’t code you write, but outcomes you describe that agents achieve using tools in loops.&lt;/p&gt;
&lt;p&gt;Five key principles govern this architecture: &lt;strong&gt;Parity&lt;/strong&gt; (agents can do everything users can via UI), &lt;strong&gt;Granularity&lt;/strong&gt; (atomic tools enable flexible composition), &lt;strong&gt;Composability&lt;/strong&gt; (new features emerge from prompt combinations), &lt;strong&gt;Emergent capability&lt;/strong&gt; (agents accomplish unanticipated tasks), and &lt;strong&gt;Improvement over time&lt;/strong&gt; (apps get better through context and prompt refinement).&lt;/p&gt;
&lt;p&gt;The approach shifts from traditional feature-by-feature development to creating a capable foundation and observing what users request, then formalizing patterns. Files serve as the universal interface due to their transparency and agent-friendliness.&lt;/p&gt;
&lt;p&gt;This architecture enables applications that are simple to start but endlessly powerful, discover latent user demand organically, and improve without code updates. The ultimate test: can your agent accomplish domain-specific outcomes you never explicitly built features for?&lt;/p&gt;
&lt;h3 id=&quot;demystifying-evals-for-ai-agents&quot;&gt;&lt;a href=&quot;https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents&quot;&gt;Demystifying evals for AI agents&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article explains how to effectively evaluate AI agents, whose autonomy and flexibility make them harder to assess than traditional models. Good evaluations prevent reactive debugging cycles by catching issues before they affect users.&lt;/p&gt;
&lt;p&gt;The authors outline a comprehensive evaluation framework with key components: tasks (individual tests), trials (multiple attempts), graders (scoring logic), transcripts (complete interaction records), and evaluation harnesses (infrastructure). They recommend combining three grader types: code-based (fast, objective), model-based (flexible, nuanced), and human (gold standard validation).&lt;/p&gt;
&lt;p&gt;Different agent types require tailored approaches: coding agents use unit tests and static analysis; conversational agents need multidimensional scoring including interaction quality; research agents require groundedness and coverage checks; computer use agents need outcome verification in real environments.&lt;/p&gt;
&lt;p&gt;The article provides a practical roadmap: start early with 20-50 real-world tasks, build robust harnesses with stable environments, design thoughtful graders, and maintain long-term through transcript review. When combined with production monitoring, A/B testing, and user feedback, evaluations create a comprehensive quality system that accelerates development rather than slowing it down.&lt;/p&gt;
&lt;h3 id=&quot;how-to-build-self-improving-coding-agents&quot;&gt;How to build self-improving coding agents&lt;/h3&gt;
&lt;h4 id=&quot;part-1&quot;&gt;&lt;a href=&quot;https://ericmjl.github.io/blog/2026/1/17/how-to-build-self-improving-coding-agents-part-1/&quot;&gt;Part 1&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;To build self-improving coding agents without changing model weights, the author proposes modifying the agent’s environment using two key levers: &lt;strong&gt;AGENTS.md&lt;/strong&gt; as repository memory and &lt;strong&gt;skills&lt;/strong&gt; as reusable playbooks.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; helps agents navigate codebases quickly through code maps and encodes repo-specific corrections and norms, preventing repeated mistakes. When agents discover mismatches or receive user feedback, they should update the documentation automatically, creating a durable feedback loop. This operational approach reduces repetitive guidance and makes agents improvement without constant babysitting.&lt;/p&gt;
&lt;h4 id=&quot;part-2&quot;&gt;&lt;a href=&quot;https://ericmjl.github.io/blog/2026/1/18/how-to-build-self-improving-coding-agents-part-2/&quot;&gt;Part 2&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The second explores “skills” for coding agents—reusable prompt folders (&lt;code&gt;SKILL.md&lt;/code&gt; + assets) that streamline repetitive tasks. Skills explicitly define when to use them, steps to follow, and expected outputs. Examples include GitHub debugging, release announcements, ML model reports, and domain-specific troubleshooting. Skills evolve through iteration and feedback, making them easier to refine than starting from scratch. While distribution is less mature than MCP servers, tools like OpenSkills now help with installation and updates.&lt;/p&gt;
&lt;h4 id=&quot;part-3&quot;&gt;&lt;a href=&quot;https://ericmjl.github.io/blog/2026/1/19/how-to-build-self-improving-coding-agents-part-3/&quot;&gt;Part 3&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Part 3 combines repo memory (&lt;code&gt;AGENTS.md&lt;/code&gt;) and skills into a practice with a maturity model: ad hoc prompting → repo-local memory → global personal skills → shared team skills. Watch agent traces to identify patterns—repo-specific go into &lt;code&gt;AGENTS.md&lt;/code&gt;, reusable workflows become skills. Markdown becomes executable when agents turn instructions into tool calls. The key distinction: &lt;code&gt;AGENTS.md&lt;/code&gt; for how a repo works; skills for repeatable, on-demand procedures. The meta skill is metacognition—watching yourself work to systematize repeated tasks. Coding agents are evolving beyond coding tools into general-purpose teammates across all intellectual work.&lt;/p&gt;
&lt;h3 id=&quot;ai-writes-code-faster-your-job-is-still-to-prove-it-works&quot;&gt;&lt;a href=&quot;https://addyosmani.com/blog/code-review-ai/&quot;&gt;AI writes code faster. Your job is still to prove it works.&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;AI accelerates coding but shifts the burden from writing to proving code works. By 2026, 30% of senior developers ship mostly AI-generated code, which has 75% more logic errors. Solo developers rely on automated testing as safety nets, while teams use human review for security, context, and accountability. AI generates 45% of code with security flaws and increases PR volume by 18%, creating review bottlenecks. The new “PR contract” requires authors to provide evidence of working code through tests and manual verification. AI serves as first-pass reviewer, but human judgment remains essential for quality control and responsibility.&lt;/p&gt;
&lt;h3 id=&quot;ai-makes-exploration-cheap-not-decisions-easy&quot;&gt;&lt;a href=&quot;https://www.nucleate.dev/blog/ai-makes-exploration-cheap-not-decisions-easy&quot;&gt;AI Makes Exploration Cheap, Not Decisions Easy&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;AI makes exploration cheaper, not decisions easier. The key insight is that AI accelerates the exploration phase of creative work, allowing designers and developers to try more options in less time, but it doesn’t eliminate the need for human judgment.&lt;/p&gt;
&lt;p&gt;Great work requires “wasted work” - trying multiple approaches that don’t work to discover what does. AI compresses this process from days/weeks to hours, enabling rapid prototyping and experimentation. However, AI cannot make final decisions because it lacks context about users, brand, constraints, and past experiences.&lt;/p&gt;
&lt;p&gt;The human role shifts to Director-Curator-Craftsman: setting vision, selecting from AI-generated abundance, and applying taste and judgment. The real benefit is faster learning - each failed attempt teaches something valuable about the problem.&lt;/p&gt;
&lt;p&gt;The trap is letting AI make decisions for you. Instead, use AI to multiply exploration, then apply critical thinking to choose the best option. Your value lies in knowing what should get built and why, not in the mechanical production work.&lt;/p&gt;
&lt;h3 id=&quot;top-python-libraries-of-2025&quot;&gt;&lt;a href=&quot;https://tryolabs.com/blog/top-python-libraries-2025&quot;&gt;Top Python libraries of 2025&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Tryolabs’ 11th 2025 top Python libraries list balances LLM-focused tools and broader ecosystem innovations (performance, security, dev experience). It includes 10 top general picks (e.g., Rust-powered &lt;code&gt;ty&lt;/code&gt; type checker) and 10 AI/ML/Data tools, plus runners-up for each category to reflect real-world AI system building.&lt;/p&gt;
&lt;h3 id=&quot;pypi-in-2025-a-year-in-review&quot;&gt;&lt;a href=&quot;https://blog.pypi.org/posts/2025-12-31-pypi-2025-in-review/&quot;&gt;PyPI in 2025: A Year in Review&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The PyPI 2025 Year in Review highlights major growth and security improvements. Key statistics: over 3.9 million new files, 130,000 new projects, 1.92 exabytes transferred. Security enhancements included improved 2FA (52% of active users), trusted publishing (50,000+ projects), email verification, phishing protection, and zipfile security. Organizations grew to 7,742 created with 9,059 projects managed. The team processed 2,000+ malware reports (66% resolved in 4 hours), handled 2,221 account recoveries, and resolved 500+ name retention requests. New features included project archiving, new Terms of Service, and enhanced incident reporting transparency.&lt;/p&gt;
&lt;h3 id=&quot;2025-the-year-in-llms&quot;&gt;&lt;a href=&quot;https://simonwillison.net/2025/Dec/31/the-year-in-llms/&quot;&gt;2025: The year in LLMs&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2025 was a transformative year for LLMs, with key trends including “reasoning” as a dominant feature—models like OpenAI’s o3 and o4-mini excelled in multi-step problem-solving and tool integration. Agents emerged critical, particularly coding agents (e.g., Claude Code, Codex CLI) handling asynchronous tasks, generating $1B in run-rate revenue. Chinese open-weight models (GLM-4.7, Qwen3) outperformed competitors, ranking highly. Prompt-driven image editing tools (GPT-4o, Google’s Nano Banana) drove viral adoption. Meta’s Llama 4 underperformed, and long tasks advanced, with models completing hours-long assignments. Agents streamlined search, and async coding tools became mainstream. Leadership shifted, with OpenAI and Google innovating, while Chinese models challenged Western dominance.&lt;/p&gt;
&lt;h3 id=&quot;five-takes-to-end-2025&quot;&gt;&lt;a href=&quot;https://parkerortolani.blog/2025/12/30/five-takes-to-end.html&quot;&gt;Five Takes to End 2025&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Parker Ortolani’s year-end tech analysis covers five key takes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI risks distraction by over-productizing instead of focusing on core AI models;&lt;/li&gt;
&lt;li&gt;Google’s dominance is resurgent with successful AI initiatives;&lt;/li&gt;
&lt;li&gt;departing Apple designer Alan Dye deserves more credit for his influential 12-year tenure;&lt;/li&gt;
&lt;li&gt;software-on-demand through AI coding tools is disrupting traditional app development;&lt;/li&gt;
&lt;li&gt;while Apple delivered excellent hardware in 2025, they must launch a spectacular AI Siri in 2026 after delays.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;software-engineering-in-2026&quot;&gt;&lt;a href=&quot;https://benjamincongdon.me/blog/2025/12/29/Software-Engineering-in-2026/&quot;&gt;Software Engineering in 2026&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The article explores how 2025’s AI coding advances will reshape software engineering in 2026. LLM tools have significantly reduced the marginal cost of producing quality code, shifting bottlenecks elsewhere. Key changes expected: infrastructure abstractions become more valuable, CI infrastructure needs higher quality, human-guided abstractions grow crucial for preventing technical debt, code review must evolve to focus on high-impact decisions, and project timeline estimates will increase in variance. While building code becomes cheaper, operating systems and high-value projects remain less LLM-amenable, requiring deeper human expertise.&lt;/p&gt;
&lt;h3 id=&quot;17-predictions-for-ai-in-2026&quot;&gt;&lt;a href=&quot;https://www.understandingai.org/p/17-predictions-for-ai-in-2026&quot;&gt;17 predictions for AI in 2026&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This article presents 17 AI predictions from experts with confidence scores, focusing on technology advancement and economic impact. Key predictions include Big Tech exceeding $500B in capital expenditures, OpenAI/Anthropic hitting 2026 revenue goals ($30B/$15B), context windows stabilizing around 1M tokens, and US GDP growth remaining under 3.5%.&lt;/p&gt;
&lt;p&gt;Other notable predictions include Tesla offering driverless taxi service, Chinese companies potentially surpassing Waymo’s robotaxi fleet, and AI avoiding major catastrophes.&lt;/p&gt;
&lt;p&gt;Overall, the authors expect steady AI improvement but modest real-world economic impacts, dismissing both AI bubble fears and rapid “fast takeoff” scenarios, instead predicting gradual integration across industries.&lt;/p&gt;
&lt;h2 id=&quot;podcasts&quot;&gt;Podcasts&lt;/h2&gt;
&lt;h3 id=&quot;-corepy&quot;&gt;🥝 core.py&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/episode/5PR5PeuIb4f2Qyo4w9hTli&quot;&gt;Episode 28: 2025 In Review&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-realpython-podcast&quot;&gt;🐍 RealPython Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/278/&quot;&gt;Episode 278: PyCoder’s Weekly 2025 Top Articles &amp;amp; Hidden Gems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/279/&quot;&gt;Episode 279: Coding Python With Confidence: Beginners Live Course Participants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/280/&quot;&gt;Episode 280: Considering Fast and Slow in Python Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/281/&quot;&gt;Episode 281: Continuing to Improve the Learning Experience at Real Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/282/&quot;&gt;Episode 282: Testing Python Code for Scalability &amp;amp; What’s New in pandas 3.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-python-bytes-podcast&quot;&gt;🥧 Python Bytes Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/464/malicious-package-no-build-for-you&quot;&gt;#464 Malicious Package? No Build For You!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/465/stack-overflow-is-cooked&quot;&gt;#465 Stack Overflow is Cooked&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/466/psf-lands-1.5-million&quot;&gt;#466 PSF Lands $1.5 million&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/467/toads-in-my-ai&quot;&gt;#467 Toads in my AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-talk-python-to-me&quot;&gt;🦜 Talk Python to me&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/533/web-frameworks-in-prod-by-their-creators&quot;&gt;#533: Web Frameworks in Prod by Their Creators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/534/diskcache-your-secret-python-perf-weapon&quot;&gt;#534: diskcache: Your secret Python perf weapon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/535/pyview-real-time-python-web-apps&quot;&gt;#535: PyView: Real-time Python Web Apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-pybites-podcast&quot;&gt;🍕 Pybites Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18354849-210-codeflash-and-continuous-python-performance-with-saurabh-misra&quot;&gt;#210: Codeflash and continuous Python performance with Saurabh Misra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18492644-211-keeping-the-joy-in-coding-a-new-year-s-resolution&quot;&gt;#211: Keeping the joy in coding - a new year’s resolution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18532295-212-elmer-bulthuis-on-rust-webassembly-and-sustainable-design&quot;&gt;#212: Elmer Bulthuis on Rust, WebAssembly, and Sustainable Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18564716-213-seven-software-engineering-tips-to-make-real-progress-this-year&quot;&gt;#213: Seven Software Engineering Tips to Make Real Progress This Year&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-vs-code-insiders-podcast&quot;&gt;🚀 VS Code Insiders Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/18&quot;&gt;Episode 18: Orchestrating Multiple Agents in VS Code with Ben &amp;amp; Peng&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;repositories&quot;&gt;Repositories&lt;/h2&gt;
&lt;h3 id=&quot;adamchainztprof-mit&quot;&gt;&lt;a href=&quot;https://github.com/adamchainz/tprof&quot;&gt;adamchainz/tprof&lt;/a&gt; (MIT)&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;tprof&lt;/code&gt; is a targeting profiler for Python 3.12+ that only measures the time spent in specified target functions. You can use it to measure your program before and after an optimization to see if it made any difference, with a quick report on the command line.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As we wrap up this journey together, I want to take a moment to express my gratitude for your reading. If you’ve enjoyed what you just read and would like to help sustain this blog, consider &lt;a href=&quot;https://github.com/blueberry-py/blog/stargazers&quot;&gt;starring this blog on github&lt;/a&gt;, it would be great motivation for me to keep updating the blogs!&lt;/p&gt;
&lt;p&gt;Alright, that concludes the January Edition of “This Month for Pythonistas”. Thank you again for reading my post. I hope you enjoy it or find something useful. Happy coding and see you in February! 👋&lt;/p&gt;
</description><pubDate>Sat, 31 Jan 2026 04:00:00 GMT</pubDate><category>python</category><category>python</category><category>news</category><category>podcast</category><category>ai</category><category>agentic</category><category>llm</category><category>linux</category><author>Zeyang Lin</author></item><item><title>This Month for Pythonistas - November 2025</title><link>https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-11/</link><guid isPermaLink="true">https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-11/</guid><description>&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; datetime &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; date&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(date.today().year, date.today().month)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 2025 11&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt=&quot;issue-2025-11&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1280&quot; height=&quot;720&quot; src=&quot;/_astro/splash.C7Un_SmT_GxBhd.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;Welcome back Pythonistas! I’m glad to see you back reading the ninth issue of my “This month for Pythonistas” series which curates the news, articles, tutorials, podcasts, and more Python stuff worth noting in this month.&lt;/p&gt;
&lt;p&gt;Before we continue, please note that this blog is synced across the following platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberry-py.github.io/blog/post/this-month-for-pythonistas-2025-11/&quot;&gt;Github Pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-11/&quot;&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.onrender.com/post/this-month-for-pythonistas-2025-11/&quot;&gt;Render&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy-blog.vercel.app/post/this-month-for-pythonistas-2025-11/&quot;&gt;Vercel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ready? Let’s get started!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;events--social&quot;&gt;Events &amp;amp; Social&lt;/h2&gt;
&lt;h3 id=&quot;pycon-us-2026-cfp-is-open&quot;&gt;PyCon US 2026 CFP is Open&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&quot;PyCon-US-2026&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1080&quot; height=&quot;1080&quot; src=&quot;/_astro/pyconus2026.yKrFO_F9_2e6UjS.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;The 2026 PyCon US &lt;a href=&quot;https://us.pycon.org/2026/speaking/guidelines/&quot;&gt;call for proposals&lt;/a&gt; (CFP) for Talks, Charlas, Tutorials and Posters is open until &lt;strong&gt;December 19th, 2025&lt;/strong&gt;. Don’t miss out on the largest Python conference in the world!&lt;/p&gt;
&lt;h3 id=&quot;pycon-ireland-2025&quot;&gt;PyCon Ireland 2025&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.python.ie/images/Dublin_Skyline_2025-screen-size.width-800.png&quot; alt=&quot;PyCon-Ireland-2025&quot;&gt;&lt;/p&gt;
&lt;p&gt;PyCon Ireland this year took place November 15-16 in UCD O’Reilly Hall, Dublin, featuring two talk tracks and two workshop tracks on both days.&lt;/p&gt;
&lt;h3 id=&quot;20th-anniversary-of-first-ever-django-release&quot;&gt;20th anniversary of first ever Django release&lt;/h3&gt;
&lt;p&gt;For the past twenty years, Django has shipped over 440 releases, making it among the most popular and successful Python web frameworks. You can read more about it &lt;a href=&quot;https://www.djangoproject.com/weblog/2025/nov/19/twenty-years-of-django-releases/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;new-versions&quot;&gt;New Versions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.15.0 alpha 2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is the second developer preview of the upcoming Python 3.15 release. It is available for download &lt;a href=&quot;https://www.python.org/downloads/release/python-3150a2/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Django 6.0 RC 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Django 6.0 release candidate 1 is &lt;a href=&quot;https://www.djangoproject.com/download/6.0rc1/tarball/&quot;&gt;now available&lt;/a&gt;. The provisional release notes can be found &lt;a href=&quot;https://docs.djangoproject.com/en/dev/releases/6.0/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Provided no major bugs are discovered that can’t be solved in the next two weeks, Django 6.0 will be released on or around &lt;em&gt;December 3&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pytest 9.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pytest 9.0 brings significant improvements including native TOML configuration support, a new strict mode for better testing practices, and the long-awaited subtests feature.&lt;/p&gt;
&lt;h2 id=&quot;tutorials&quot;&gt;Tutorials&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/jupyter-ai-coding-in-notebooks/&quot;&gt;Jupyter AI: AI Coding in Notebooks&lt;/a&gt; by Andrew Ng and Brian Granger&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In this course, you’ll build a book research assistant using the Open Library API, and create a stock market data analysis workflow, all with the help of Jupyter AI. You’ll learn how to provide API documentation as context so the LLM generates accurate syntax for code that wasn’t part of its pretraining.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/semantic-caching-for-ai-agents/&quot;&gt;Semantic Caching for AI Agents&lt;/a&gt; from Redis&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In this course, you’ll build a semantic cache that makes your AI agents faster and more cost-effective by recognizing when different questions mean the same thing. For example, when someone asks “How do I get a refund?” and another asks “I want my money back”， your cache will reuse the answer instead of making another API call, reducing the need for redundant model calls.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/courses/design-develop-and-deploy-multi-agent-systems-with-crewai/&quot;&gt;Design, Develop, and Deploy Multi-Agent Systems with CrewAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: This course contains a small portion of content which requires a paid PRO subscription to access.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Learn how to build multi-agent systems that automate complex, end-to-end workflows. You’ll create intelligent agent teams that plan, reason, and collaborate using tools, memory, and guardrails, and learn how to scale them for production.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;RealPython’s &lt;a href=&quot;https://realpython.com/python-markitdown/&quot;&gt;Python MarkItDown: Convert Documents Into LLM-Ready Markdown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The MarkItDown library lets you quickly turn PDFs, Office files, images, HTML, audio, and URLs into LLM-ready Markdown. In this tutorial, you’ll compare MarkItDown with Pandoc, run it from the command line, use it in Python code, and integrate conversions into AI-powered workflows.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://cookbook.openai.com/examples/build_a_coding_agent_with_gpt-5.1&quot;&gt;Build a coding agent with GPT 5.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In this guide, we’ll use the Agents SDK to build a coding agent that can scaffold a brand-new app from a prompt and refine it through user feedback.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.jetbrains.com/pycharm/2025/10/why-performance-matters-in-python-development/&quot;&gt;Why Performance Matters in Python Development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: This article contains promotional content regarding JetBrains products.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The blog from JetBrains emphasizes Python performance optimization as a strategic business imperative, not just technical concern. Despite Python’s interpreted nature and GIL limitations, most bottlenecks stem from code-level inefficiencies. Performance impacts user experience, scalability, infrastructure costs, and development velocity. Key optimization areas include algorithmic improvements, proper data structures, I/O batching, and appropriate parallelism (threading for I/O-bound, multiprocessing for CPU-bound tasks). The article dispels myths about Python being universally slow, emphasizing profiling-driven optimization over intuition.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mergify.com/blog/await-is-not-a-context-switch-understanding-python-s-coroutines-vs-tasks&quot;&gt;&lt;code&gt;await&lt;/code&gt; is Not a Context Switch: Understanding Python’s Coroutines vs Tasks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This blog post clarifies a critical distinction in Python’s &lt;code&gt;asyncio&lt;/code&gt;: unlike JavaScript or C#, awaiting a coroutine does not automatically yield control to the event loop. In Python, &lt;code&gt;await&lt;/code&gt; synchronously executes a coroutine until a suspension occurs; true concurrency and interleaving mainly happen with explicitly created Tasks (&lt;code&gt;asyncio.create_task&lt;/code&gt;). This means critical sections without internal &lt;code&gt;await&lt;/code&gt; statements are atomic relative to the event loop. Understanding this prevents unnecessary locking, as race conditions only occur at specific suspension points, not at every &lt;code&gt;async&lt;/code&gt; function call.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pythonmorsels.com/__slots__/&quot;&gt;&lt;code&gt;__slots__&lt;/code&gt; for optimizing classes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Python classes store instance attributes in a &lt;code&gt;__dict__&lt;/code&gt; dictionary by default, allowing dynamic addition but consuming memory. Defining &lt;code&gt;__slots__ = (&apos;attr1&apos;, &apos;attr2&apos;, ...)&lt;/code&gt; replaces &lt;code&gt;__dict__&lt;/code&gt; with a fixed, efficient array-like structure. Benefits: restricts attributes (no extras allowed), reduces memory usage (e.g., from 271KB to 176KB for 1M Point objects), and speeds up attribute lookups. Ideal for classes with many instances or frequent access.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://codecut.ai/regex-pregex-pyparsing-text-pattern-matching-guide/&quot;&gt;Choose the Right Text Pattern Tool: Regex, Pregex, or Pyparsing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article compares three Python text pattern matching tools: regex (regular expressions), pregex (human-readable regex alternative), and pyparsing (grammar-based parsing). It teaches when to use each tool for extracting emails, phone numbers, and parsing structured data. The guide helps developers choose the right approach for different text processing scenarios in Python.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.paulox.net//2025/11/14/how-to-use-uuidv7-in-python-django-and-postgresql/&quot;&gt;How to use UUIDv7 in Python, Django and PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This guide explains using UUIDv7 – time-ordered IDs for better index locality than UUIDv4 – in Python 3.14 (&lt;code&gt;uuid.uuid7()&lt;/code&gt;), Django 5.2 models, and PostgreSQL 18 (native &lt;code&gt;uuidv7()&lt;/code&gt; generation and &lt;code&gt;uuid_extract_timestamp()&lt;/code&gt; via GeneratedFields). Covers setup, migrations, client-side (SQLite) vs. DB-side generation, testing, and considerations for other databases like MySQL/Oracle. Recommends masking (UUIDv47) for public APIs to hide timestamps.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jacobtomlinson.dev/posts/2025/python-package-managers-uv-vs-pixi/&quot;&gt;Python package managers: uv vs pixi?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This post compares Python package managers uv (fast Rust pip reimplementation for PyPI) and pixi (next-gen conda for PyPI + conda-forge). uv suits scripts, apps, libraries; pixi excels in AI/CUDA/science with compiled deps. Historical evolution: pip → conda binaries → mamba speed → declarative locking. Author’s recommendations: uv for most, pixi for GPU/research, conda+uv for interdependent libs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/gpt-5-1-for-developers/&quot;&gt;Introducing GPT-5.1 for developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenAI has released GPT-5.1 for the API platform, a model designed to balance intelligence and speed for agentic and coding tasks. It features adaptive reasoning, where the model dynamically adjusts thinking time based on task complexity—processing simple requests significantly faster while remaining persistent on difficult problems.&lt;/p&gt;
&lt;p&gt;Key updates include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;No Reasoning Mode: A setting for ultra-low latency tasks like tool calling and search, behaving like a standard non-reasoning model but with GPT-5.1’s intelligence base.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extended Prompt Caching: Supports up to 24-hour cache retention to lower costs and latency for long-context workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New Developer Tools: Introduces &lt;code&gt;apply_patch&lt;/code&gt; for reliable, structure-aware code editing and a &lt;code&gt;shell&lt;/code&gt; tool for executing local commands.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GPT-5.1 utilizes a more steerable coding personality and outperforms GPT-5 on benchmarks like SWE-bench Verified (76.3%). It is available immediately to developers on paid tiers, with pricing matching GPT-5. Specialized &lt;code&gt;codex&lt;/code&gt; versions were also released for agentic coding workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.google/products/gemini/gemini-3/&quot;&gt;A new era of intelligence with Gemini 3&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://storage.googleapis.com/gweb-uniblog-publish-prod/images/gemini_3_webdev_arena_leaderboar.width-1000.format-webp.webp&quot; alt=&quot;gemini-3-pro-tops-webdev-arena&quot;&gt;&lt;/p&gt;
&lt;p&gt;Google has introduced Gemini 3, its most intelligent and capable AI model to date. Gemini 3 Pro delivers state-of-the-art performance in multimodal reasoning, coding, and long-horizon planning, outperforming previous models on major benchmarks like Humanity’s Last Exam.&lt;/p&gt;
&lt;p&gt;Key features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enhanced Reasoning: The model offers deeper nuance and reduced sycophancy. A new Deep Think mode, coming soon to Ultra subscribers, pushes reasoning capabilities even further for complex problem-solving.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Developer Tools: Google launched &lt;strong&gt;Antigravity&lt;/strong&gt;, a new agentic development platform where AI agents can autonomously plan, code, and validate software.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Practical Applications: Gemini 3 helps users learn by synthesizing diverse inputs (like video and text), build complex apps via “vibe coding,” and handle multi-step planning tasks for daily life.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gemini 3 is available immediately across Google products, including the Gemini app, AI Studio, Vertex AI, and within Google Search’s AI Mode. The release emphasizes robust safety testing and improved resistance to misuse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/blog/topics/developers-practitioners/where-to-use-sub-agents-versus-agents-as-tools&quot;&gt;ADK architecture: When to use sub-agents versus agents as tools&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This blog post compares &lt;em&gt;sub-agents&lt;/em&gt; vs. &lt;em&gt;agents as tools&lt;/em&gt; in multi-agent AI systems. Agents as tools are stateless, reusable for discrete tasks (e.g., NL2SQL, DB execution) with isolated context. Sub-agents are stateful, collaborative for complex workflows (e.g., data visualization, travel planning) sharing parent context. Decision matrix: Use tools for low-complexity/reusable tasks; sub-agents for high-complexity/stateful processes. Real-world cases include data analysis and trip planning.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://martinfowler.com/articles/llm-learning-loop.html&quot;&gt;The Learning Loop and LLMs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article argues that software development is fundamentally a learning process, not an assembly line. While LLMs excel at removing friction and generating code, they cannot replace the essential learning loop of observe-experiment-apply. True expertise comes from hands-on experience and understanding, not just AI-generated solutions. LLMs are best used as brainstorming partners, not autonomous builders, to avoid the “maintenance cliff” where systems become unmaintainable due to lack of deep understanding.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://octomind.dev/blog/why-agents-do-not-write-most-of-our-code-a-reality-check&quot;&gt;why agents DO NOT write most of our code - a reality check&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article provides a reality check on AI coding agents. Despite building AI agents themselves, Octomind finds that most of their code is still written by humans. Through practical experiments, the author reveals that AI agents struggle with maintaining codebase mental models, produce overly verbose code (1000+ line PRs), lack self-reflection about their limitations, and often miss critical issues like transaction handling. While AI is valuable for brainstorming, debugging, and small tasks, the dream of agents writing most production code remains far from reality.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://stefaniemolin.com/articles/open-source/becoming-a-core-developer/&quot;&gt;Becoming a Core Developer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stefanie Molin became a numpydoc core developer by creating a pre-commit hook for docstring validation. Starting from fixing docstrings at a Scikit-Learn sprint, she developed &lt;code&gt;AstValidator&lt;/code&gt; using Python’s &lt;code&gt;ast&lt;/code&gt; module for static analysis, avoiding code execution. This led to numpydoc-validation (v1.6.0+), with CLI linting and config via &lt;code&gt;pyproject.toml&lt;/code&gt;. After PR merge and improvements, she joined as core dev in April 2024.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/what-caused-the-large-aws-outage&quot;&gt;What caused the large AWS outage?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A major AWS outage on October 20, 2025 was caused by a DynamoDB DNS failure in us-east-1. The 14-hour incident started when race conditions between DNS enactors emptied DynamoDB’s DNS records, making the database appear offline. This cascaded to EC2’s droplet management system, causing capacity shortages and network connectivity issues that took 12+ hours to fully resolve.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/18-november-2025-outage/&quot;&gt;Cloudflare outage on November 18, 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On November 18, 2025, Cloudflare experienced a significant outage starting at 11:20 UTC that disrupted traffic across its network, causing widespread HTTP 5xx errors for customer websites and impacting services like Workers KV, Access, and the Dashboard.&lt;/p&gt;
&lt;p&gt;The outage was not caused by a cyberattack but by an internal configuration error. A change to database permissions caused a query to generate duplicate entries in a “feature file” used by Cloudflare’s Bot Management system. This doubling in file size exceeded a hardcoded memory limit within the core proxy software, causing the system to crash (panic) globally.&lt;/p&gt;
&lt;p&gt;Cloudflare engineers initially suspected a DDoS attack but soon identified the corrupt file. They resolved the issue by halting the bad file’s propagation and manually reverting to a known good version. Core traffic began flowing normally by 14:30 UTC, and all systems were fully restored by 17:06 UTC. Cloudflare has apologized and is implementing new safeguards, such as stricter file validation and global kill switches, to prevent future occurrences.&lt;/p&gt;
&lt;h2 id=&quot;podcasts&quot;&gt;Podcasts&lt;/h2&gt;
&lt;h3 id=&quot;-realpython-podcast&quot;&gt;🐍 RealPython Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/273/&quot;&gt;Episode 273: Advice for Writing Maintainable Python Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/274/&quot;&gt;Episode 274: Preparing Data Science Projects for Production&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/275/&quot;&gt;Episode 275: Building a FastAPI Application &amp;amp; Exploring Python Concurrency&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-python-bytes-podcast&quot;&gt;🥧 Python Bytes Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/456/youre-so-wrong&quot;&gt;#456 You’re so wrong&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/457/tapping-into-http&quot;&gt;#457 Tapping into HTTP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/458/i-will-install-linux-on-your-computer&quot;&gt;#458 I will install Linux on your computer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/459/inverted-dependency-trees&quot;&gt;#459 Inverted dependency trees&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-talk-python-to-me&quot;&gt;🦜 Talk Python to me&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/526/building-data-science-with-foundation-llm-models&quot;&gt;#526: Building Data Science with Foundation LLM Models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/527/mcp-servers-for-python-devs&quot;&gt;#527: MCP Servers for Python Devs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/528/python-apps-with-llm-building-blocks&quot;&gt;#528: Python apps with LLM building blocks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-pybites-podcast&quot;&gt;🍕 Pybites Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/17969765-204-the-science-of-open-science-with-leah-wasser-founder-of-pyopensci&quot;&gt;#204: The science of open science - with Leah Wasser, founder of pyOpenSci&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18047967-205-building-reactive-python-notebooks-with-marimo&quot;&gt;#205: Building reactive Python notebooks with Marimo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/18217165-the-power-of-one-clear-goal-kishan-patel-on-building-a-developer-mindset&quot;&gt;#206: The Power of One Clear Goal: Kishan Patel on building a Developer Mindset&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-vs-code-insiders-podcast&quot;&gt;🚀 VS Code Insiders Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/12&quot;&gt;Episode 12: Behind the Scenes of VS Code’s Planning Agent with Bhavya U&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/13&quot;&gt;Episode 13: Beyond the Keynote: VS Code at GitHub Universe 2025&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/14&quot;&gt;Episode 14: Designing for Everyone: Accessibility in VS Code with Megan Rogge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/15&quot;&gt;Episode 15: Taming AI Assisted Coding Models with Eleanor Berger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;repositories&quot;&gt;Repositories&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hyperflask/hyperflask&quot;&gt;hyperflask&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;hyperflask is a Flask-based (very) opiniated full-stack web framework where all the tech choices have been made. It combines multiple Flask extensions and frontend libraries into a seamless experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/langchain-ai/deepagents&quot;&gt;langchain-ai/deepagents&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Primarily inspired by Claude Code, deepagents is an agent harness built on langchain and langgraph, which is equipped with a planning tool, a filesystem backend, and the ability to spawn subagents - making them well-equipped to handle complex agentic tasks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/MoonshotAI/kimi-cli&quot;&gt;MoonshotAI/kimi-cli&lt;/a&gt; (Apache 2.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kimi CLI is yet another command-line agent but built within Python ecosystem unlike other Claude Code-alike tools. Apart from agentic coding, it can also be switched to “shell mode” where you can run (some of) shell commands.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/MemMachine/MemMachine&quot;&gt;MemMachine&lt;/a&gt; (Apache 2.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MemMachine is a open-source, “universal” memory layer for AI agents which persists across multiple sessions, agents, and large language models. It provides Python SDK, RESTful API as well as MCP for easy integration with agents.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/OpenRouterTeam/python-sdk&quot;&gt;OpenRouterTeam/python-sdk&lt;/a&gt; (Apache 2.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is OpenRouter’s official Python SDK, a type-safe toolkit for building AI applications with access to 300+ language models through a unified API. You can find the docs &lt;a href=&quot;https://openrouter.ai/docs/sdks/python&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;have-time-for-some-fun&quot;&gt;Have time for some fun?&lt;/h2&gt;
&lt;h3 id=&quot;golden-joystick-awards-2025&quot;&gt;Golden Joystick Awards 2025&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.mos.cms.futurecdn.net/pqnA52wxB3ZWa6sVPJvyJZ-1200-80.jpg.webp&quot; alt=&quot;golder-joystick-ultimate-game-of-the-year&quot;&gt;&lt;/p&gt;
&lt;p&gt;The Golden Joystick Awards revealed its winners for 2025 on November 20th! Congratulations to the winners, especially &lt;strong&gt;Clair Obscure Expedition 33&lt;/strong&gt; which was crowned the Ultimate Game of the Year (UGOTY) along with other six thophies, for their outstanding contributions to the video game industry!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As we wrap up this journey together, I want to take a moment to express my gratitude for your reading. If you’ve enjoyed what you just read and would like to help sustain this blog, consider &lt;a href=&quot;https://github.com/blueberry-py/blog/stargazers&quot;&gt;starring this blog on github&lt;/a&gt;, it would be great motivation for me to keep updating the blogs!&lt;/p&gt;
&lt;p&gt;Alright, that concludes the November Edition of “This Month of Pythonistas”. Thank you again for reading my post. I hope you enjoy it or find something useful. Happy coding and see you in December!&lt;/p&gt;
</description><pubDate>Sun, 30 Nov 2025 13:00:00 GMT</pubDate><category>python</category><category>python</category><category>cli</category><category>linux</category><category>podcast</category><category>news</category><category>agentic</category><category>llm</category><category>ai</category><author>Zeyang Lin</author></item><item><title>This Month for Pythonistas - October 2025</title><link>https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-10/</link><guid isPermaLink="true">https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-10/</guid><description>&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; datetime &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; date&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(date.today().year, date.today().month)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 2025 10&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt=&quot;issue-2025-10&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1280&quot; height=&quot;720&quot; src=&quot;/_astro/splash.J0iciDAs_Z20gOYn.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;Welcome back Pythonistas! In this big month for Python community, I’m glad to see you back reading the eighth issue of my “This month for Pythonistas” series which curates the news, articles, tutorials, podcasts, and more Python stuff worth noting in this month.&lt;/p&gt;
&lt;p&gt;Before we continue, please note that this blog is synced across the following platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberry-py.github.io/blog/post/this-month-for-pythonistas-2025-10/&quot;&gt;Github Pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.netlify.app/post/this-month-for-pythonistas-2025-10/&quot;&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blueberrypy.onrender.com/post/this-month-for-pythonistas-2025-10/&quot;&gt;Render&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ready? Let’s get started!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;events--social&quot;&gt;Events &amp;amp; Social&lt;/h2&gt;
&lt;h3 id=&quot;openai-devday-2025&quot;&gt;OpenAI DevDay 2025&lt;/h3&gt;
&lt;p&gt;OpenAI DevDay 2025 was held on October 6, 2025 at Fort Mason in San Francisco. The keynote was delivered by CEO Sam Altman and featured special guest Jony Ive, the renowned Apple designer. The event focused on empowering developers to build groundbreaking applications faster than ever.&lt;/p&gt;
&lt;p&gt;Highlights include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/introducing-apps-in-chatgpt/&quot;&gt;Apps in ChatGPT&lt;/a&gt; and &lt;a href=&quot;https://developers.openai.com/apps-sdk/&quot;&gt;Apps SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/docs/guides/agents/agent-builder&quot;&gt;AgentKit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sora 2 and Sora 2 Pro&lt;/li&gt;
&lt;li&gt;GPT-5 Pro API&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/codex-now-generally-available/&quot;&gt;Codex General-Available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPT-Realtime-mini&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;github-universe-25&quot;&gt;Github Universe 25&lt;/h3&gt;
&lt;p&gt;At &lt;strong&gt;Github Universe 25&lt;/strong&gt;, which was held on October 28 - 29, 2025, GitHub announces &lt;strong&gt;Agent HQ&lt;/strong&gt; - a unified platform bringing coding agents from Anthropic, OpenAI, Google, Cognition, and xAI directly into GitHub workflows as part of Copilot subscriptions. Features include mission control for managing agents across devices, VS Code integration with plan mode and custom agents, enterprise governance tools, code quality checks, and metrics dashboards. It would be available starting with OpenAI Codex for Copilot Pro+ users in VS Code Insiders.&lt;/p&gt;
&lt;p&gt;A comprehensive recap can be found &lt;a href=&quot;https://github.com/events/universe/recap&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;new-versions&quot;&gt;New Versions&lt;/h2&gt;
&lt;h3 id=&quot;python-3140-final&quot;&gt;Python 3.14.0 final&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.python.org/downloads/release/python-3140/&quot;&gt;&lt;img src=&quot;https://hugovk.dev/python-3.14.png&quot; alt=&quot;python3.14&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Python 3.14 (Pi, 𝜋, or Pie) is finally here! This release brings officially supported free-threaded build and lots of new features. Besides, Python 3.13.9 is also released.&lt;/p&gt;
&lt;p&gt;Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 are the latest security-only releases.&lt;/p&gt;
&lt;p&gt;Python 3.9 is reaching End-Of-Life this October, so don’t forget to upgrade!&lt;/p&gt;
&lt;h3 id=&quot;python-3150-alpha-1&quot;&gt;Python 3.15.0 alpha 1&lt;/h3&gt;
&lt;p&gt;Python 3.15.0 alpha 1 is the first of seven planned alpha releases for the Python 3.15 series. Key highlights include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Statistical Sampling Profiler (PEP 799): A new high-performance profiling tool with virtually zero overhead that can sample at up to 1,000,000 Hz&lt;/li&gt;
&lt;li&gt;UTF-8 as Default Encoding (PEP 686): Python now uses UTF-8 as the default encoding for I/O operations, improving cross-platform compatibility&lt;/li&gt;
&lt;li&gt;New C API (PEP 782): Introduction of PyBytesWriter for creating Python bytes objects&lt;/li&gt;
&lt;li&gt;Improved Error Messages: Enhanced developer experience with better error reporting&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;langchain-10--langgraph-10&quot;&gt;LangChain 1.0 &amp;amp; LangGraph 1.0&lt;/h3&gt;
&lt;p&gt;This version marks LangChain’s commitment to stability with no breaking changes until 2.0, while reducing complexity and focusing on core agent functionality.&lt;/p&gt;
&lt;h3 id=&quot;crewai-10&quot;&gt;CrewAI 1.0&lt;/h3&gt;
&lt;p&gt;CrewAI 1.0 represents the transition from beta/experimental to production-grade enterprise solution, with better stability, enterprise features, and a more mature ecosystem while maintaining the core multi-agent orchestration capabilities.&lt;/p&gt;
&lt;h3 id=&quot;pytorch-29&quot;&gt;PyTorch 2.9&lt;/h3&gt;
&lt;p&gt;The 2.9 release focuses on enhancing multi-GPU programming, expanding hardware compatibility, and improving the developer experience for C++ extensions while maintaining performance optimizations.&lt;/p&gt;
&lt;p&gt;Major New Features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Symmetric Memory: New feature enabling easier multi-GPU kernel programming&lt;/li&gt;
&lt;li&gt;Enhanced torch.compile: Ability to arbitrarily toggle error or resume on graph breaks&lt;/li&gt;
&lt;li&gt;Expanded Hardware Support: Added ROCm, XPU, and CUDA 13 wheel variants&lt;/li&gt;
&lt;li&gt;FlexAttention: Now enabled on Intel GPUs with flash decoding optimization on x86 CPUs&lt;/li&gt;
&lt;li&gt;Arm Platform: Improvements and optimizations for Arm architecture&lt;/li&gt;
&lt;li&gt;Linux aarch64: Binary wheel builds across all CUDA versions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;isort-70&quot;&gt;isort 7.0&lt;/h3&gt;
&lt;p&gt;isort 7 is a conservative major release focused on updating Python version support and maintaining compatibility with newer Python versions. The changes are relatively minor compared to the major architectural changes seen between versions 4.x → 5.x. The main impact for users will be the requirement for Python 3.10+ and improved debugging information for file processing.&lt;/p&gt;
&lt;h3 id=&quot;ubuntu-2510&quot;&gt;Ubuntu 25.10&lt;/h3&gt;
&lt;p&gt;Ubuntu 25.10 “Questing Quokka” is released! It “introduces GNOME 49 with media and power controls on the lock screen, HDR brightness settings, and enhanced accessibility features in line with the European Accessibility Act.”&lt;/p&gt;
&lt;p&gt;It “also debuts Rust-based implementations of sudo and coreutils for improved memory safety, and adopts the new RVA23 profile as the baseline for RISC-V, paving the way to Ubuntu 26.04 LTS.”&lt;/p&gt;
&lt;p&gt;Other spins like Xubuntu, Lubuntu, Kubuntu, edubuntu, and Ubuntu Studio are also released. Pick your favorite and start coding!&lt;/p&gt;
&lt;h2 id=&quot;tutorials&quot;&gt;Tutorials&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/courses/agentic-ai/&quot;&gt;Agentic AI&lt;/a&gt; by Andrew Ng&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In this course taught by Andrew Ng, you’ll gain a fundamental understanding and practical knowledge to develop production-ready agentic applications, from design patterns to deployment and evaluation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/building-live-voice-agents-with-googles-adk/&quot;&gt;Building Live Voice Agents with Google’s ADK&lt;/a&gt; from Google&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;You’ll learn how to build and deploy AI agents with Google’s open source Agent Development Kit (ADK). ADK provides modular components such as models, tools, memory, and orchestration, that make it easier to create both simple and complex systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;DeepLearning.ai’s &lt;a href=&quot;https://www.deeplearning.ai/short-courses/governing-ai-agents/&quot;&gt;Governing AI Agents&lt;/a&gt; from databricks&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Explore what it means to govern an agent, how to apply governance policies to a real dataset in Databricks, and how to add observability to track and debug performance. Through this course, you’ll know how to build agents that handle data responsibly while maintaining visibility, and safety.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;articles&quot;&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/python314-new-features/&quot;&gt;Python 3.14: Cool New Features for You to Try&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As usual, RealPython has a great article on the very latest Python version. This time it compiles a list of the new features in Python 3.14 (eg. t-strings, colorful REPL, deferred annotation evaluation) and demonstrates how to play with them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.miguelgrinberg.com/post/python-3-14-is-here-how-fast-is-it&quot;&gt;Python 3.14 Is Here. How Fast Is It?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Python 3.14 is the fastest CPython release yet, showing significant improvements over previous versions. Benchmarks tested Fibonacci calculations and bubble sort algorithms across single-threaded and multi-threaded scenarios. Key findings show 3.14 running 27% faster than 3.13 for recursive functions. While the new JIT interpreter showed minimal gains, the free-threading variant delivered impressive 3x speed improvements for CPU-heavy multi-threaded workloads due to GIL removal. PyPy remained exceptionally fast, outperforming even Node.js in some tests, while Rust demonstrated the highest performance overall.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.baro.dev/p/the-future-of-python-web-services-looks-gil-free&quot;&gt;The future of Python web services looks GIL-free&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Python 3.14’s free-threaded implementation (no GIL) shows promising results for web services. Benchmarks reveal ASGI apps maintain similar performance with 20% lower memory usage, while WSGI apps see 3-4x throughput improvements for CPU-bound tasks. Despite 5-10% performance penalty in pure Python Python code, the elimination of GIL contention enables true multi-core utilization, potentially revolutionizing Python web deployment by simplifying concurrency and reducing memory requirements.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pythonmorsels.com/t-strings-in-python/&quot;&gt;T-strings: Python’s Fifth String Formatting Technique?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Python 3.14 introduces t-strings, a fifth string formatting technique that returns Template objects instead of strings. Unlike f-strings which immediately interpolate values, t-strings enable lazy string interpolation - useful for library authors who need to pre-process inputs (like escaping SQL/HTML) before final string creation. T-strings use &lt;code&gt;t&quot;...&quot;&lt;/code&gt; syntax and are primarily designed for tool/library maintainers, not typical Python developers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://codecut.ai/langchain-1-0-middleware-production-agents/&quot;&gt;Build Production-Ready LLM Agents with LangChain 1.0 Middleware&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This tutorial demonstrates how to build production-ready LLM agents using LangChain 1.0’s new middleware architecture. It covers five essential middleware components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Message Summarization: Manages context windows by condensing conversations&lt;/li&gt;
&lt;li&gt;PII Filtering: Protects sensitive data through automatic redaction&lt;/li&gt;
&lt;li&gt;Human-in-the-Loop: Adds approval workflows for sensitive actions&lt;/li&gt;
&lt;li&gt;Task Planning: Structures complex requests into manageable subtasks&lt;/li&gt;
&lt;li&gt;Intelligent Tool Selection: Pre-filters tools to reduce costs and improve accuracy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The middleware follows web server patterns, providing reusable, testable components that can be composed together. Each focuses on a single responsibility (monitor, modify, control, or enforce) and integrates seamlessly to build robust production agents with minimal infrastructure code.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.paulox.net/2025/10/06/django-orm-comparison/&quot;&gt;Django: one ORM to rule all databases 💍&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This article provides a comprehensive comparison of Django ORM features across PostgreSQL, SQLite, MariaDB, MySQL, and Oracle. It includes detailed feature matrices showing support levels (✅/⚠️/🚫) for various functionality including field types, constraints, query features, transactions, and GIS capabilities, using fictional data to illustrate what an automated feature comparison matrix could look like in Django’s official documentation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bui.app/why-reactive-programming-hasnt-taken-off-in-python-and-how-signals-can-change-that/&quot;&gt;Why Reactive Programming Hasn’t Taken Off in Python (And How Signals Can Change That)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reactive programming hasn’t gained traction in Python because existing tools like RxPY are designed for event streams and require complex subscription management. However, signal-based reactive programming offers Python developers automatic state synchronization like spreadsheet formulas, reducing bugs and improving maintainability. The &lt;code&gt;reaktiv&lt;/code&gt; library provides transparent, synchronous updates where derived values automatically stay in sync with base data without manual coordination.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://vectifyai.notion.site/agentic-retrieval&quot;&gt;From Claude Code to Agentic RAG&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article advocates moving from traditional vector-based RAG systems to “agentic retrieval” - letting LLMs reason through documents directly. It introduces &lt;code&gt;PageIndex&lt;/code&gt;, a vectorless hierarchical indexing system that creates human-like table-of-contents trees. Instead of complex vector databases, it gives LLMs navigational tools to find and retrieve relevant content, mirroring how Claude Code uses simple tools like grep. PageIndex achieved 98.7% accuracy on FinanceBench while requiring minimal infrastructure.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://simonwillison.net/2025/Oct/7/vibe-engineering/&quot;&gt;Vibe engineering&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Willison proposes “vibe engineering” as the opposite of “vibe coding” - a sophisticated, accountable approach where experienced engineers use AI tools like coding agents responsibly. This method rewards advanced software practices: comprehensive testing, planning, documentation, version control, and good management skills.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.arcbjorn.com/state-of-llms-2025&quot;&gt;State of LLMs in Late 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The 2025 LLM landscape is hyper-specialized, moving from single generalist models to a diverse ecosystem where each model has distinct strengths. The article analyzes GPT-5’s unified intelligence system with automatic model switching, Claude Sonnet 4.5’s coding dominance (77% SWE-bench), open-source Llama 4 variants with 10M token contexts, Grok 4’s mathematical supremacy, and efficient alternatives like Mistral. It provides practical guidance on choosing the right model based on specific use cases rather than “which is smartest,” reflecting the era of tailored AI tools for specific tasks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://kix.dev/two-things-llm-coding-agents-are-still-bad-at/&quot;&gt;Two things LLM coding agents are still bad at&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LLM coding agents struggle with two key areas. First, they don’t use copy-paste operations—instead of moving code directly, they delete from the source and write from memory into the destination, which feels unnatural compared to human programming habits. Second, they’re terrible at asking clarifying questions when uncertain; instead they make assumptions and brute-force solutions until hitting walls.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bytesauna.com/post/coding-vs-software-engineering&quot;&gt;AI can code, but it can’t build software&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The article argues that while AI can generate code, it cannot truly “build software” - the complex engineering required to create production-ready applications. Coding is solving isolated problems, but software engineering involves managing complexity, integration, and long-term maintainability. AI can demo features, but transforming prototypes into robust systems requires human expertise, explaining why non-technical founders still seek technical co-founders despite AI tools.&lt;/p&gt;
&lt;h2 id=&quot;podcasts&quot;&gt;Podcasts&lt;/h2&gt;
&lt;h3 id=&quot;-corepy&quot;&gt;🥝 core.py&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/episode/3zMQYlP7hF7fKi8wdlAxyn&quot;&gt;Episode 26.1: CPython Sprint Week in Cambridge UK, Part 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/episode/7rj1Sxqw8oOUvgkbbh59PN&quot;&gt;Episode 26.2: CPython Sprint Week in Cambridge UK, Part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-realpython-podcast&quot;&gt;🐍 RealPython Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/268/&quot;&gt;Episode 268: Advice on Beginning to Learn Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/269/&quot;&gt;Episode 269: Python 3.14: Exploring the New Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/270/&quot;&gt;Episode 270: Evolving Teaching Python in the Classroom&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/271/&quot;&gt;Episode 271: Benchmarking Python 3.14 &amp;amp; Enabling Asyncio to Scale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://realpython.com/podcasts/rpp/272/&quot;&gt;Episode 272: Michael Kennedy: Managing Your Own Python Infrastructure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-python-bytes-podcast&quot;&gt;🥧 Python Bytes Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/452/pi-py-day-or-is-it-py-pi-day&quot;&gt;#452 pi py-day (or is it py pi-day?)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/453/python&quot;&gt;#453 Python++&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/454/its-some-form-of-elvish&quot;&gt;#454 It’s some form of Elvish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pythonbytes.fm/episodes/show/455/gilded-python-and-beyond&quot;&gt;#455 Gilded Python and Beyond&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-talk-python-to-me&quot;&gt;🦜 Talk Python to me&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/522/data-sci-tips-and-tricks-from-codecut.ai&quot;&gt;#522: Data Sci Tips and Tricks from CodeCut.ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/523/pyrefly-fast-ide-friendly-typing-for-python&quot;&gt;#523: Pyrefly: Fast, IDE-friendly typing for Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/524/38-things-python-developers-should-learn-in-2025&quot;&gt;#524: 38 things Python developers should learn in 2025&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://talkpython.fm/episodes/show/525/nicegui-goes-3.0&quot;&gt;#525: NiceGUI Goes 3.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-pybites-podcast&quot;&gt;🍕 Pybites Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.pybitespodcast.com/1501156/episodes/17891539-203-automating-api-documentation-with-zylosystems&quot;&gt;#203: Automating API Documentation with Zylosystems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-vs-code-insiders-podcast&quot;&gt;🚀 VS Code Insiders Podcast&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/8&quot;&gt;Episode 8: Impact of AI on How We Learn to Code with Scott Tolinski&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/9&quot;&gt;Episode 9: Building agent memory for VS Code with Harald Kirschner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/10&quot;&gt;Episode 10: Mastering Chat Modes in VS Code with Burke Holland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vscodepodcast.com/11&quot;&gt;Episode 11: Building &amp;amp; Scaling Open Source Communities with Steve Francia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;repositories&quot;&gt;Repositories&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/anthropics/claude-agent-sdk-python/&quot;&gt;claude-agent-sdk-python&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code SDK is renamed to Claude Agent SDK. It helps developers build powerful autonomous agents using Claude.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/microsoft/agent-framework&quot;&gt;microsoft/agent-framework&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MAF is Microsoft’s comprehensive multi-language framework for building, orchestrating, and deploying AI agents with support for both .NET and Python implementations. It’s developed by the core AutoGen and Semantic Kernel teams at Microsoft, and is designed to be a new foundation for building AI applications going forward.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/microsoft/agent-lightning&quot;&gt;microsoft/agent-lightning&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;“The absolute trainer to light up AI agents.”&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/VectifyAI/PageIndex&quot;&gt;PageIndex&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;PageIndex&lt;/code&gt; is a Vector-less, reasoning-based RAG system that simulates how human experts navigate and extract knowledge from long documents through tree search, enabling LLMs to think and reason their way to the most relevant document sections.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hunvreus/devpush&quot;&gt;/dev/push&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;/dev/push&lt;/code&gt; is a open-source Platform as a Service (PaaS) written in Python and HTML for developers to build and deploy their applications. It is self-hostable and can be considered as an alternative to Vercel, Netlify, etc.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mitmproxy/pdoc&quot;&gt;mitmproxy/pdoc&lt;/a&gt; (MIT-0)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;pdoc&lt;/code&gt; is a Python library for generating API documentation from code and comments.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ludo-technologies/pyscn&quot;&gt;ludo-technologies/pyscn&lt;/a&gt; (MIT)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;pyscn&lt;/code&gt; is a Python code quality analyzer written in Go. It detects dead code, tracks module dependencies, and analyzes complexity, etc. to make your code base more maintainable.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;As we wrap up this journey together, I want to take a moment to express my gratitude for your reading. If you’ve enjoyed what you just read and would like to help sustain this blog, consider &lt;a href=&quot;https://github.com/blueberry-py/blog/stargazers&quot;&gt;starring this blog on github&lt;/a&gt;, it would be great motivation for me to keep updating the blogs!&lt;/p&gt;
&lt;p&gt;Alright, that concludes the October Edition of “This Month of Pythonistas”. Thank you again for reading my post. I hope you enjoy it or find something useful. Happy coding and see you in November!&lt;/p&gt;
</description><pubDate>Fri, 31 Oct 2025 13:00:00 GMT</pubDate><category>python</category><category>python</category><category>cli</category><category>linux</category><category>podcast</category><category>news</category><category>agentic</category><author>Zeyang Lin</author></item></channel></rss>