PythonHub
2.49K subscribers
2.35K photos
49.9K links
News & links about Python programming.
https://pythonhub.dev/
Download Telegram
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 ...

https://sethmlarson.dev/deprecate-confusing-apis-like-os-path-commonprefix
1
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...

https://github.com/vitali87/code-graph-rag
1
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.

https://nedbatchelder.com/blog/202602/pytest_parameter_functions
1
Invent your own comprehensions in Python

Python doesn't have tuple, frozenset, or Counter comprehensions, but you can invent your own by passing a generator expression to any iterable-accepting callable.

https://www.pythonmorsels.com/custom-comprehensions/
Avoiding empty strings in non-nullable Django string-based model fields

Django allows empty strings ('') even on non-nullable string fields, so you must explicitly enforce non-empty values using validation or database constraints rather than relying on null=False. The post argues for treating empty strings as invalid at the model or DB level (e.g., validators or CHECK constraints) to ensure true “required” semantics for string fields.

https://peateasea.de/avoiding-empty-strings-in-non-nullable-django-string-based-model-fields/
The Slow Collapse of MkDocs

How personality clashes, an absent founder, and a controversial redesign fractured one of Python's most popular projects.

https://fpgmaas.com/blog/collapse-of-mkdocs/
Stop Passing Primitives Everywhere (Use Value Objects)

By replacing primitives with immutable Value Objects, you can centralize validation and eliminate domain ambiguity for types like prices and percentages. This pattern ensures that invalid states are impossible to represent, creating a self-documenting and more reliable codebase without the overhead of heavy frameworks.

https://www.youtube.com/watch?v=CWYwz3iV1g0
Build a smart financial assistant with LlamaParse and Gemini 3.1

Learn how to extract high-quality data from complex, unstructured PDFs using LlamaParse powered by Gemini 3.1 Pro. This guide demonstrates an event-driven workflow to automate the parsing of dense financial tables and generate intelligent summaries with Gemini 3.1 Flash. Perfect for developers building scalable document-parsing pipelines and AI personal finance assistants.

https://developers.googleblog.com/build-a-smart-financial-assistant-with-llamaparse-and-gemini-31/