Python Dev News: ORMAR, JupyterLite, Data Viz & More
Overview of Tools and Libraries
This episode of Python Bytes covers several innovative libraries aimed at improving developer productivity and software maintenance. The hosts explore new ways to bridge the gap between database modeling and data serialization, as well as tools to simplify dependency errors.
Database and Data Handling
• ORMAR: An async mini-ORM for Python that combines Pydantic models and SQL models into a single definition to reduce data duplication.
• MontyDB: An embedded MongoDB implementation written in Python that allows developers to run database operations in-process, ideal for testing and lightweight CLI applications.
Developer Productivity
• NoModuleNamed.com: A helpful service for developers encountering "No module named" errors, providing clear instructions on proper package installation names, which often differ from the code import statements.
• JupyterLite: A fascinating Jupyter distribution that runs entirely in the browser using WebAssembly and Pyodide, allowing for a fully portable data science environment without a server backend.
Data Visualization and Code Quality
Plotting Comparisons
The episode dives into the nuances of various Python plotting libraries including Matplotlib, Seaborn, and Plotly Express. The discussion highlights the benefits of using a grammar of graphics approach, specifically through libraries like Altair, for building complex, consistent visualizations with less overhead.
Advanced Type Checking
• Exhaustiveness Checking with MyPy: A clever deep-dive into ensuring all cases in an conditional flow or enum are handled at compile time. By using an assert_never function, developers can leverage MyPy to catch unhandled logical branches before code even reaches runtime.
"As devs, if we know we've left behind some messy code, we can't stop thinking about it. It haunts us."