We have come a long way in this book. From learning how modules and packages work in Python, and how to use them to better organize your code, we have discovered many of the common practices used to apply modular patterns to solve a range of programming problems. We have seen how modular programming allows us to deal with changing requirements in a real-world system in the best possible way, and learned what makes a module or package a suitable candidate for reuse in new projects. We have seen many of the more advanced techniques for working with modules and packages in Python, as well as ways of avoiding the pitfalls that you may encounter along the way.
Finally, we looked at ways of testing your code, how to use a source code management system to keep track of the changes you make to your code over time, and how to submit your module or package to the Python Package Index (PyPI) so that others can find and use...