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

Pytest parameter functions
The post shows how to make complex pytest.mark.parametrize data more readable and maintainable by wrapping each test case in small helper functions instead of raw tuples. It also demonstrates using pytest.param with custom IDs inside those helpers so long, messy parameter values become clear, concise test names that are easier to work with.

PEP 827 - Type Manipulation has just been published

code-graph-rag
Code-Graph-RAG builds knowledge graphs from multi-language codebases and enables AI-powered querying and editing. It uses Tree-sitter to parse ASTs across 11 languages, stores structural data in Memgraph, and translates natural language questions into Cypher graph queries. Unlike vector-based RAG, it preserves exact code relationships: call chains, inheritance hierarchies, and module dep...

Deprecate confusing APIs like “os.path.commonprefix()”
The article argues that confusing APIs like Python’s os.path.commonprefix() should be deprecated because their misleading naming and placement cause developers to misuse them and introduce security vulnerabilities. It shows how decades of confusion around this function led to real path-traversal bugs and concludes that unsafe or misleading APIs should be replaced by clearer alternatives ...

Custom Data Structures in E-Graphs
The post explores how Egglog’s e-graph framework can be extended with custom container data structures to represent algebraic structures (like multisets) more efficiently and reduce expression blow-up during rewriting. It shows that by embedding structural invariants into the data representation and using higher-order functions, you can express powerful rewrite rules without explosive gr...


💖 Most Popular in the Last Two Weeks

You’ve Been Underusing Dataclasses (These Tricks Are Wild)
The video demonstrates seven powerful, lesser-known techniques using Python dataclasses, including automatic class registration, lightweight validation, cached derived values, and context manager patterns. It also shows practical uses such as CLI generation and explains advanced features like InitVar, highlighting how dataclasses can enable cleaner and more expressive Python designs.

Comparing Python packages for A/B test analysis (with code examples)

python-apple-fm-sdk
Python bindings for access to the on-device model at the core of Apple Intelligence through the Foundation Models framework.

MicroGPT explained interactively
Walk through Karpathy's 200-line GPT from scratch. Tokenize names into integers, watch softmax convert scores to probabilities, step through backpropagation on a computation graph, explore attention heatmaps, and see a tiny model learn to generate plausible names.

PEP 827 - Type Manipulation has just been published


📅 Weekly Digests Archive

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.