Python Byte-Sized News: PyTest, Qt, MongoDB, and Packaging
PyTest 3.6.0 Updates
The Marker System Revamp
• The release of PyTest 3.6.0 introduces a significant overhaul to the marker system internally.
• While the API changes are mostly relevant to plugin developers (such as the deprecation of getMarker in favor of iterMarkers and getClosestMarker), it marks a push towards better maintenance.
• Added support for Python 3.7 breakpoint functionality and improved assertions for whitespace-only equality failures by escaping characters.
Python GUIs: The Future of Qt
Qt for Python
"It's really nice that the company that makes QT, the cross-platform GUI framework, is like really dedicating itself to Python."
• The transition from the fragmented landscape of PyQt and PySide is shifting toward Qt for Python, a unified effort supported by the Qt company.
• Efforts are focused on providing a smoother experience, including official wheels for easier pip install processes and a reliance on the existing Qt Designer.
MongoDB 4.0 and Data Persistence
The Shift to ACID
• The release of the 4.0 RC0 brings multi-document ACID transactions to MongoDB, blurring the lines between NoSQL and relational paradigms.
• The discussion highlighted the potential for rollback checkpoints during testing and the evolution of change streams for efficient, non-polling database updates.
Modern Python Packaging
Is PipEnv Ready for Production?
• A production review of PipEnv highlights its superiority over requirements.txt for application dependency management.
• Key benefits include integrated security auditing, environment reproducibility, and distinct dev-dependencies management.
• There is an ongoing challenge regarding its fit for library authors, as it is primarily designed for application-level pinning.
DevOps and Community Updates
Enhancing Workflow
• Best practices for GitHub and GitLab workflows including the use of issue templates, automated testing on pull requests, and the integration of pre-commit hooks (like black) to enforce styling.
• Pandas announces plans to drop Python 2 support, following NumPy's lead and continuing the industry-wide transition to Python 3.