Python Packages introduces Python packaging at an introductory and practical level that’s suitable for those with no previous packaging experience. Despite this, the text builds up to advanced topics such as automated testing, creating documentation, versioning and updating a package, and implementing continuous integration and deployment. Covering the entire Python packaging life cycle, this essential guide takes readers from package creation all the way to effective maintenance and updating.
Python Packages focuses on the use of current and best-practice packaging tools and services like poetry, cookiecutter, pytest, sphinx, GitHub, and GitHub Actions.
- The book’s source code is available online as a GitHub repository where it is collaborated on, automatically tested, and built in real time as changes are made; demonstrating the use of good reproducible and clear project workflows.
- Covers not just the process of creating a package, but also how to document it, test it, publish it to the Python Package Index (PyPI), and how to properly version and update it.
- All concepts in the book are demonstrated using examples. Readers can follow along, creating their own Python packages using the reproducible code provided in the text.
- Focuses on a modern approach to Python packaging with emphasis on automating and streamlining the packaging process using new and emerging tools such as poetry and GitHub Actions.
Table of Contents
1 Introduction 2 System setup 3 How to package a Python 4 Package structure and distribution 5 Testing 6 Documentation 7 Releasing and versioning 8 Continuous integration and deployment
Tomas Beuzen is a data scientist and educator based in Sydney, Australia. He has a background in coastal engineering and climate science and was a teaching fellow for the Master of Data Science program at the University of British Columbia, Vancouver. He currently spends his time developing open-source, educational data science material and using data science to solve problems in the natural and engineered world.
Tiffany Timbers is an Assistant Professor of Teaching in the Department of Statistics and a Co-Director for the Master of Data Science program at the University of British Columbia, Vancouver. In these roles she teaches and develops curriculum around the responsible application of Data Science to solve real-world problems.