Python Tools: Documentation, Data Viz, and Productivity
Python Documentation and Tools
This episode focuses on modern tools that help streamline Python development and data science workflows. The discussion kicks off by exploring Interrogate, a command-line tool designed to check codebases for missing docstrings. The hosts emphasize that while not every internal function needs documentation, public libraries should be thoroughly documented to assist both users and future code maintainers.
The Importance of Testing and Documentation
"Ideally your test name should be descriptive and the code should be clear. So why do you need a doc string?"
Building on the topic of documentation, the hosts debate the necessity of docstrings for unit tests. They argue that documenting tests is crucial for explaining side effects, ensuring future developers understand the "why" behind specific test cases, and preventing the premature deletion of essential checks during CI/CD fatigue.
Data Visualization and Single-Page Apps
Moving toward data science, the episode covers two major projects that simplify creating interactive web applications:
• Streamlit: A powerful tool that allows data scientists to build interactive web apps using straightforward, procedural Python code. It handles server logic and UI components automatically.
• HoloViz: A coordinated suite of visualization libraries, including Panel and DataShader, designed for handling large datasets and creating powerful, browser-based data dashboards.
Practical Applications
The episode highlights Awesome Panel, a collection of curated examples that demonstrate how to build interactive applications without needing deep knowledge of complex frameworks like Vue.js or React.
Developer Productivity
Finally, the team touches on various productivity improvements:
- Live Progress: A customizable, fun command-line tool for adding animated progress bars to scripts.
- CodeTogether: A tool for pair programming that offers shared editing and debugging across multiple platforms (PyCharm, VS Code, etc.).