PythonHub Logo Python Hub

Interesting articles and projects for Python developers.


🌍 Follow Python Hub in your social environment

twitter.com/PythonHub

telegram.me/PythonHub

mastodon.social/@pythonhub

bluesky/@pythonhub.dev

Discord Python Hub Channel

WhatsApp Python Hub Channel


🍩 Support Python Hub

Buy me a Coffee

— On Patreon, just $1 per month


🫱 Suggest a Link

Share a news, article or interesting project. Link will be published after manual review.


πŸ”‹ Ethical Ads


βœ‰οΈ Weekly Digest Email

Subscribe to Python Hub Weekly Digest


🍹 Latest

Feloxi
Self-hosted monitoring for Python task queues. Live dashboards, searchable task history, and alerting that fires.

Is UV still worth learning/switching to now that it's owned by OpenAI?

Agent Hooks: Deterministic Control for Agent Workflows
The post is about agent hooks as a control layer that makes AI behavior more deterministic by enforcing rules at specific lifecycle points, instead of relying on prompts alone. It emphasizes using hooks for policy enforcement, validation, and observability so teams can block bad actions, add guardrails, and make agent workflows more production-safe.

Watching for file changes on macOS
This post details how to build a lightweight tool for monitoring file system activity on macOS without relying on third-party dependencies. It explains how to implement a Swift script that interfaces directly with Apple's native FSEvents API and forwards those live change notifications to a Python environment via stdout.

Python 3.15: features that didn't make the headlines


πŸ’– Most Popular in the Last Two Weeks

semble
Fast and Accurate Code Search for Agents. Uses ~98% fewer tokens than grep+read.

How we accelerated transpilation by compiling SQLGlot with mypyc
Fivetran accelerated SQLGlot, a pure Python SQL parser/transpiler, by 5x through compiling 100+ modules into C extensions with mypyc, without rewriting it in Rust. Key optimizations included sentinel tokens, native i64 integers, dispatch tables, and upstream mypyc primitives for string operations, resulting in 3.9 to 5x speedups across the tokenizer, parser, and generator.

Agent Hooks: Deterministic Control for Agent Workflows
The post is about agent hooks as a control layer that makes AI behavior more deterministic by enforcing rules at specific lifecycle points, instead of relying on prompts alone. It emphasizes using hooks for policy enforcement, validation, and observability so teams can block bad actions, add guardrails, and make agent workflows more production-safe.

DRY Often Makes Your Code Worse
A DRY refactor can make code worse when it removes duplication by hiding different behaviors behind flags and shared abstractions. Better refactoring focuses on separating responsibilities and making behavior clear, not just making the code look smaller.

The Simplest MCP Example Possible in Python
The post shows the simplest Python example of MCP (Model Context Protocol) for connecting a local LLM like Llama 3.2 to tools. It uses fastmcp and ollama packages with two scripts: mcp_server.py for time/date tools and ollama_client.py to run the chat loop.


πŸ“… Weekly Digests Archive

2026-05-24 · 2026-05-17 · 2026-05-10 · 2026-05-03 · 2026-04-26 · 2026-04-19 · 2026-04-12 · 2026-04-05 · 2026-03-29 · 2026-03-22 · 2026-03-15 · 2026-03-08 · 2026-03-01 · 2026-02-22 · 2026-02-15 · 2026-02-08 · 2026-02-01 · 2026-01-25 · 2026-01-18 · 2026-01-11 · 2026-01-04 · 2025-12-28 · 2025-12-21 · 2025-12-14 · 2025-12-07 · 2025-11-30 · 2025-11-23 · 2025-11-16 · 2025-11-09 · 2025-11-02 · 2025-10-26 · 2025-10-19 · 2025-10-12 · 2025-10-05 · 2025-09-28 · 2025-09-21 · 2025-09-14 · 2025-09-07 · 2025-08-31 · 2025-08-24 · 2025-08-17 · 2025-08-10 · 2025-08-03 · 2025-07-27 · 2025-07-20 · 2025-07-13 · 2025-07-06 · 2025-06-29 · 2025-06-22 · 2025-06-15 · 2025-06-08 · 2025-06-01 · 2025-05-25 · 2025-05-18 · 2025-05-11 · 2025-05-04 · 2025-04-27 · 2025-04-20 · 2025-04-13 · 2025-04-06 · 2025-03-30 · 2025-03-23 · 2025-03-16 · 2025-03-09 · 2025-03-02 · 2025-02-23 · 2025-02-16 · 2025-02-09 · 2025-02-02 · 2025-01-26 · 2025-01-19 · 2025-01-12 · 2025-01-05 · 2024-12-29 · 2024-12-22 · 2024-12-15 · 2024-12-08 · 2024-12-01 · 2024-11-24 · 2024-11-17 · 2024-11-10 · 2024-11-03 · 2024-10-27 · 2024-10-20 · 2024-10-13 · 2024-10-06 · 2024-09-29 · 2024-09-22 · 2024-09-15 · 2024-09-08 · 2024-09-01 · 2024-08-25 · 2024-08-18 · 2024-08-11 · 2024-08-04 · 2024-07-28 · 2024-07-21 · 2024-07-14 · 2024-07-07 · 2024-06-30 · 2024-06-23 · 2024-06-16 · 2024-06-09 · 2024-06-02 · 2024-05-26 · 2024-05-19 · 2024-05-12 · 2024-05-05 · 2024-04-28 · 2024-04-21 · 2024-04-14 · 2024-04-07 · 2024-03-31 · 2024-03-24 · 2024-03-17 · 2024-03-10 · 2024-03-03 · 2024-02-25 · 2024-02-18 · 2024-02-11 · 2024-02-04 · 2024-01-28 · 2024-01-21 · 2024-01-14 · 2024-01-07 · 2023-12-31 · 2023-12-24 · 2023-12-17 · 2023-12-10 · 2023-12-03 · 2023-11-26 · 2023-11-19 · 2023-11-12 · 2023-11-05 · 2023-10-29 · 2023-10-22 · 2023-10-15 · 2023-10-08 · 2023-10-01 · 2023-09-24 · 2023-09-17 · 2023-09-10 · 2023-09-03 · 2023-08-27 · 2023-08-20 · 2023-08-13 · 2023-08-06 · 2023-07-30 · 2023-07-23 · 2023-07-16 · 2023-07-09 · 2023-07-02 · 2023-06-25 · 2023-06-18 · 2023-06-11 · 2023-06-04 · 2023-05-28 · 2023-05-21 · 2023-05-14 · 2023-05-07 · 2023-04-30 · 2023-04-23 · 2023-04-16 · 2023-04-09 · 2023-04-02 · 2023-03-26 · 2023-03-19 · 2023-03-12 · 2023-03-05 · 2023-02-26 · 2023-02-19 · 2023-02-12 · 2023-02-05 · 2023-01-29 · 2023-01-22 · 2023-01-15 · 2023-01-08 · 2023-01-01 · 2022-12-25 · 2022-12-18 · 2022-12-11 · 2022-12-04 · 2022-11-27 · 2022-11-20 · 2022-11-13 · 2022-11-06 · 2022-10-30 · 2022-10-23 · 2022-10-16 · 2022-10-09 · 2022-10-02 · 2022-09-25 · 2022-09-18 · 2022-09-11 · 2022-09-04 · 2022-08-28 · 2022-08-21 · 2022-08-14 · 2022-08-07 · 2022-07-31 · 2022-07-24 · 2022-07-17 · 2022-07-10 · 2022-07-03 · 2022-06-26 · 2022-06-19 · 2022-06-12 · 2022-06-05 · 2022-05-29 · 2022-05-22 · 2022-05-15 · 2022-05-08 · 2022-05-01 · 2022-04-24 · 2022-04-17 · 2022-04-10 · 2022-04-03 · 2022-03-27 · 2022-03-20 · 2022-03-13 · 2022-03-06 · 2022-02-27 · 2022-02-20 · 2022-02-13 · 2022-02-06 · 2022-01-30 · 2022-01-23 · 2022-01-16 · 2022-01-09 · 2022-01-02 · 2021-12-26 · 2021-12-19 · 2021-12-12 · 2021-12-05 · 2021-11-28 · 2021-11-21 · 2021-11-14 · 2021-11-07 · 2021-10-31 · 2021-10-24 · 2021-10-17 · 2021-10-10 · 2021-10-03 · 2021-09-26 · 2021-09-19 · 2021-09-12 · 2021-09-05 · 2021-08-29 · 2021-08-22 · 2021-08-15 · 2021-08-08 · 2021-08-01 · 2021-07-25 · 2021-07-18 · 2021-07-11 · 2021-07-04 · 2021-06-27 · 2021-06-20 · 2021-06-13 · 2021-06-06 · 2021-05-30 · 2021-05-23 · 2021-05-16 · 2021-05-09 · 2021-05-02 · 2021-04-25 · 2021-04-18 · 2021-04-11 · 2021-04-04 · 2021-03-28 · 2021-03-21 · 2021-03-14 · 2021-03-07 · 2021-02-28 · 2021-02-21 · 2021-02-14 · 2021-02-07 · 2021-01-31 · 2021-01-24 · 2021-01-17 · 2021-01-10 · 2021-01-03 · 2020-12-27 · 2020-12-20 · 2020-12-13 · 2020-12-06 · 2020-11-29 · 2020-11-22 · 2020-11-15 · 2020-11-08 · 2020-11-01 · 2020-10-25 · 2020-10-18 · 2020-10-11 · 2020-10-04 · 2020-09-27 · 2020-09-20 · 2020-09-13 · 2020-09-06 · 2020-08-30 · 2020-08-23 · 2020-08-16 · 2020-08-09 · 2020-08-02 · 2020-07-26 · 2020-07-19 · 2020-07-12 · 2020-07-05 · 2020-06-28 · 2020-06-21 · 2020-06-14 · 2020-06-07 · 2020-05-31 · 2020-05-24 · 2020-05-17 · 2020-05-10 · 2020-05-03 · 2020-04-26 · 2020-04-19 · 2020-04-12 · 2020-04-05 · 2020-03-29 · 2020-03-22 · 2020-03-15 · 2020-03-08 · 2020-03-01 · 2020-02-23 · 2020-02-16 · 2020-02-09 · 2020-02-02 · 2020-01-26 · 2020-01-19 · 2020-01-12 · 2020-01-05 · 2019-12-29 · 2019-12-22 · 2019-12-15 · 2019-12-08 · 2019-12-01 · 2019-11-24 · 2019-11-17 · 2019-11-10 · 2019-11-03 · 2019-10-27 · 2019-10-20 · 2019-10-13 · 2019-10-06 · 2019-09-29 · 2019-09-22 · 2019-09-15 · 2019-09-08 · 2019-09-01 · 2019-08-25 · 2019-08-18 · 2019-08-11 · 2019-08-04 · 2019-07-28 · 2019-07-21


Project by Ruslan Keba. Since 2012. Powered by Python. Made in πŸ‡ΊπŸ‡¦Ukraine.