Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Keeping up with the Python ecosystem can be daunting. Its developer tooling doesn't provide the out-of-the-box experience native to languages like Rust and Go. When it comes to long-term project maintenance or collaborating with others, every Python project faces the same problem: how to build reliable workflows beyond local development while staying in sync with the evolving ecosystem.
With this hands-on guide, Python developers will learn how to forge the moving parts of a Python project into an easy-to-use toolchain, using state-of-the-art tools including Poetry, Nox, pytest, mypy, pre-commit, Black, Ruff, uv, Rye, Hatch, and more. Author Claudio Jolowicz shows you how to create robust Python project structures complete with unit tests, static analysis, code formatting, and type checking.
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.
You'll learn how to:
Create open source projects with state-of-the-art infrastructure
Build a custom infrastructure for all Python projects in a company or team
Improve and modernize the infrastructure of an existing Python project
Evaluate modern Python tooling for adoption in existing projects
Use tools for packaging and dependency management
Automate common development tasks such as testing, dependency updates, and publishing releases
Who Should Read This Book?
If you’re one of these people, you’ll benefit from reading this book:
You’re proficient with Python, but you’re not sure how to create a package.
You’ve been doing this for years— setuptools, virtualenv, and pip are your friends. You’re curious about recent developments in tooling and what they bring to the table.
You maintain mission-critical code that runs in production. But there must be a better way to do all of this. You want to learn about state-of-the art tools and evolving best practices.
You want to be more productive as a Python developer.
You’re an open source maintainer looking for a robust and modern project infrastructure.
You’re using a bunch of Python tools in your projects, but it’s hard to see how everything fits together. You want to reduce the friction that comes with all this tooling.
“Things just keep breaking— why doesn’t Python find my module now? Why can’t I import the package I just installed?”
This book assumes that you have a basic knowledge of the Python programming language. The only tooling you need to be familiar with are the Python interpreter, an editor or IDE, and the command line of your operating system