Python Packaging, Services, and Steering Council Updates
Python Ecosystem Updates
Hatch 1.8.0 and PyApp
Python packaging continues to evolve with the release of Hatch 1.8.0. A significant highlight is the introduction of PyApp, a tool written in Rust that allows developers to distribute Python projects as standalone executables (e.g., .exe, .app, .dmg).
• Hatch now manages Python itself, moving beyond just handling projects.
• The system includes signing installers for macOS to prevent security warnings.
• Improved performance for virtual environment activation through dependency hashing.
Services (SVCS) Framework
Hinnick has released a project called Services (SVCS), designed to reduce boilerplate when managing dependencies in web applications.
"It's a flexible service locator, but it's really the inversion of control."
• The project features extensive documentation with examples for FastAPI, Flask, Pyramid, and Starlet.
• It clarifies essential concepts like service layers, resource management, and dependency injection.
Community and Technical Deep Dives
Steering Council Election Results
Python's governance for 2024 has been determined. The new Steering Council members are Pablo Galindo Salgado, Gregory Smith, Emily Morehouse, Barry Warsaw, and Thomas Waters.
Mastering Python Protocols
The hosts discussed an article on Python Protocols, a feature introduced in Python 3.8.
• Protocols provide a structural subtyping alternative to Abstract Base Classes (ABCs).
• They allow developers to define expected functionality without requiring inheritance, enabling a powerful way to enforce type safety on third-party code.
Digital Security and Best Practices
Data Privacy and Cloud Storage
Following concerns regarding Dropbox sharing user data with OpenAI for AI features by default, the hosts recommend more secure, encrypted alternatives.
• Proton Drive and Sync.com were highlighted as secure, privacy-focused options.
• Cryptomator is recommended for creating encrypted virtual drives, ensuring that cloud providers only ever receive an encrypted, indecipherable blob of data.