Python Development, Shell Tools, and Rust Extensions
·18m 15s
Shared point
–
Development Resources
This episode explores several ways to improve your Python workflow, starting with CPython contributions. The newly updated devguide.python.org provides an essential roadmap for those looking to contribute to the core language, complete with guides on testing, git workflows, and issue tracking.
Productivity and Automation
- Sultan: A powerful library that allows you to manage system shell commands in a Pythonic way, including support for remote execution via SSH.
- Flake8 Lint: A highly recommended Sublime Text plugin that automates code quality by checking for PEP 8 compliance, cyclomatic complexity, and naming conventions directly within your editor.
- Magic Wormhole: A secure way to transfer files between computers using short, human-pronounceable passwords for end-to-end encrypted connections, bypassing firewall frustrations.
Best Practices and Modern Integration
- Virtual Environments: The hosts stress the necessity of virtual environments for all developers. Using these environments prevents common dependency conflicts where different versions of Python or its packages clash on the same system.
- Rust and Python: The discussion shifts to the future of C extensions. Rust is presented as a compelling alternative to C for low-level performance code. Notable projects include:
- Rust-CPython: Bindings to interface with the CPython runtime.
- Py03: Facilitates bi-directional communication between Rust and Python.
- Snake: A dynamic loader for Rust libraries in Python.
- Cookiecutter template: Simplifies the creation of binary wheels for Rust-based extensions.
"Your editor should do as much of the work for you as possible."