Python Weekly (Issue 662 August 8 2024)

Python Weekly - Issue 662

Python Weekly

Welcome to issue 662 of Python Weekly. Let's get straight to the links this week.

Articles, Tutorials and Talks

This video discusses how Python 3.13 is revolutionizing performance by making the Global Interpreter Lock (GIL) optional! Learn what the GIL is, why it exists, and the potential impacts of its removal on your Python projects.

The article introduces "Knuckledragger," a semi-automated Python proof assistant based on Z3, detailing its design, core principles, and various theoretical applications such as intervals, complex numbers, set theory, and linear algebra. It emphasizes leveraging Z3's existing API to minimize custom code, while adding features like tactics and systematic induction principles to enhance usability and efficiency.

The article discusses the implementation of a "Knownbits" abstract domain for the Toy optimizer, which tracks individual bits of a variable as "known zero," "known one," or "unknown" to optimize integer operations. It details the construction of the domain, transfer functions, and correctness proofs using property-based testing and automated proofs, with plans to apply a more complex version to the PyPy JIT compiler.

This article discusses the limitations and pitfalls of using the __all__ attribute in Python for defining public APIs, emphasizing how it fails to enforce module boundaries and can lead to tightly coupled codebases. The author proposes an alternative solution involving a custom import hook to ensure stricter module interface enforcement.

The video demonstrates using Djeno database for natural language to SQL queries via embeddings, emphasizing semantic search, and integration with Django. It covers setting up PostgreSQL, creating Django models, embedding for efficient search, and caching for performance, while addressing bugs and customizing prompts in the SQL engine.

The article explains how to implement log context propagation in Python ASGI applications using middleware to automatically tag log messages with contextual information like user ID and platform. This approach simplifies logging by eliminating the need for manual context passing across different layers of an application, ensuring all logs within a request-response cycle are consistently tagged.

This course will guide you through the basics of Retrieval-Augmented Generation (RAG), starting with its fundamental concepts and components. You'll learn how to build a RAG system for chatting with documents, explore advanced techniques, and understand the pitfalls of naive RAG.

Interesting Projects, Tools and Libraries

An LLM-based Multi-agent Framework of Web Search Engine (like Perplexity.ai Pro and SearchGPT)

A vector search SQLite extension that runs anywhere!

Chat with your current directory's files using a local or API LLM.

CPython API for asynchronous functions.

nanoGPT style version of Llama 3.1

DCPerf benchmark suite for hyperscale cloud applications,

AudioSample is an optimized numpy-like audio manipulation library, created for researchers, used by developers.

Generate dynamic UI forms from text using OpenAI's structured output API. 

AI-First Process Automation with Large Multimodal Models (LMMs).

New Releases

Django 5.1 introduces LoginRequiredMiddleware for easier authentication enforcement, accessibility enhancements like improved screen reader support and better HTML semantics, and a new querystring template tag for simpler URL handling in templates.

Upcoming Events and Webinars

There will be following talks

  • Measuring garbage collection latency impact

  • GitHub Copilot - Research, Roadmap, and Studies

There will be following talks

  • LLM Based Applications - Building Agentic RAG Workshop

  • Scaling Vector Search in Production Without Breaking the Bank: Quantization and Adaptive Retrieval

There will be a talk, Packing rust code using pyo3 and maturin.

There will be following talks

  • Foundation models for complete beginners 

  • Retrieval-Augmented Generation

There will be following talks

  • To AI or Not to AI: Is It the Right Solution for Your Problem?

  • Patching and Splitting Python Wheels

  • Formalizing a Language

There will be following talks

  • Creating a Raspberry Pi Cluster for Parallel Python Application Testing

  • Agile and Data Product Teams - Surely that doesn't work?

There will be following talks

  • Building an LLM Agent to talk to the Berlin Parliament with Ollama

  • Bayes by Hand

Our Other Newsletters

 - A free weekly newsletter for programmers.

- A free weekly newsletter for entrepreneurs featuring best curated content, must read articles, how to guides, tips and tricks, resources, events and more.