Preface
This book is a guide to modern Python developer tools—the programs that help you perform tasks such as:
-
Managing Python installations on your system
-
Installing third-party packages for your current project
-
Building a Python package for distribution on a package repository
-
Running a test suite repeatedly across multiple environments
-
Linting and type checking your code to catch bugs
You don’t strictly need these tools to write Python software. Fire up your system’s Python interpreter and get an interactive prompt. Save your Python code as a script for later. Why use anything beyond an editor and a shell?
This is not a rhetorical question. Every tool you add to your development workflow should have a clear purpose and bring benefits that outweigh the costs of using it. Generally, the benefits of development tooling become manifest when you need to make development sustainable over time. At some point, publishing your module on the Python Package Index will be easier than emailing it to your users.
Somewhere along the journey from writing one-off scripts to distributing and maintaining packages, challenges pop up:
-
Supporting multiple versions of Python on multiple operating systems
-
Keeping dependencies up-to-date and scanning them for vulnerabilities
-
Keeping the code base readable and consistent
-
Interacting with bug reports and external contributions from the community
-
Keeping test coverage high to reduce the defect rate in code changes
-
Automating ...