Python Developer Tools: Pydantic, McFly & Textual
Data Modeling: Adders vs. Pydantic
The episode begins by examining the trade-offs between Adders and Pydantic. While both serve to reduce boilerplate in class creation, they cater to different use cases:
• Adders is praised for its speed and optional validation, acting as an enhanced alternative to standard data classes.
• Pydantic is highlighted as a powerful solution for data validation, particularly when dealing with unstructured inputs or external APIs, despite its heavier overhead.
Terminal Productivity
Exploring tools to enhance the developer experience in the command line:
• McFly: A Rust-based tool that provides a smarter, context-aware approach to shell history. It uses a neural network to rank commands based on directory context, exit status, and frequency.
• The hosts discuss the ongoing "rustification" of Python tools and the transition from basic history searches to more efficient, UI-driven tools.
UI Design and Boilerplate
Paul Everett introduces a discussion on Textual and the balance between explicit and implicit coding patterns:
• The conversation centers on reducing boilerplate code without sacrificing readability or type-checking capabilities.
• Emphasis is placed on maintaining a balance where modern editors and static analysis tools can still assist developers despite the use of concise syntax.
Testing and Automations
Several niche tools were highlighted to improve code quality and daily life:
• xDoctest: A drop-in replacement for standard doctest that utilizes Abstract Syntax Trees (AST), offers better whitespace normalization, and integrates seamlessly with pytest.
• Raspberry Pi Desk Automation: A fun, practical project showcasing how to use Python and a Raspberry Pi to automate a standing desk, demonstrating that hardware projects are highly accessible for software developers.
• Hypermodern Python: A discussion on bootstrapping projects using high-quality standards like poetry, black, and github actions to ensure long-term sustainability.
"I'm a developer advocate at JetBrains... I always joke that I should be paying them, but don't tell them I said that."
— Paul Everett