Python Packaging, Code Quality, and Web Frontend
The Future of Python Packaging
Transitioning to pyproject.toml
• The conversation centers on the shift from legacy files like setup.py, requirements.txt, and setup.cfg toward the pyproject.toml configuration file.
• Experts highlight that PEP 517 and PEP 518 standardize build systems, allowing tools like Poetry and Flit to thrive without executing arbitrary code during installation.
• > "This is very squarely the future of Python packaging."
Tools for Code Quality and Complexity
Measuring Codebases
• The discussion introduces Radon and PyLama as powerful utilities for calculating cyclomatic complexity and maintainability indices.
• These tools leverage the Abstract Syntax Tree (AST) to provide actionable insights into code structure.
• The panel explores the possibility of integrating automated complexity checks within pre-commit hooks to prevent overly complex code from entering the repository.
Python in Education and the Browser
Interactive Learning
• The panel identifies several tools to improve the onboarding experience for new Python programmers, including the Mu editor and REPL.it.
• The potential for running Python natively on the web via WebAssembly (WASM) and Pyodide is explored as a way to challenge JavaScript's monopoly on client-side development.
Formatting with Black
• Black is championed as a game-changer for team consistency, eliminating arguments over style through its opinionated, uncompromising formatting approach.
Asynchronous Testing with Arsenic
• For projects requiring async/await functionality, the tool Arsenic serves as a modern alternative to Selenium, enabling efficient asynchronous web automation.