Core Python: Organizing Larger Programs
By Austin Bingham and Robert Smallshire
Course info



Course info



Description
As your Python programs grow, or you contribute to existing, larger Python-based systems, you'll need some techniques to help you manage the inevitable growth of complexity. In this course, Core Python: Organizing Larger Programs, you’ll learn foundational knowledge to structure your Python programs to facilitate their growth and maintenance. First, you'll learn how to implement packages. Next, you'll discover namespace and executable packages. Finally, you'll explore a structure for your projects that support everything from code to tests to documentation. When you’re finished with this course, you’ll have the skills and knowledge of Python program organization needed to grow and nurture your Python projects.
Section Introduction Transcripts
Course Overview
Hi everyone, my name is Austin Bingham, and welcome to my course, Core Python: Organizing Larger Programs. I'm a founder and principle consultant at Sixty North. As your Python programs grow, or if you need to contribute to existing larger Python-based systems, you'll need some techniques to help you manage the inevitable growth of complexity. Our experience is that successful Python projects pay close attention to the modular organization of their code. In this course, we are going to introduce you to features of the Python language which facilitate the structuring of your code base once your needs move beyond a few Python modules. Some of the major topics we will cover include packages, which allow us to nest Python modules into subpackages; namespace packages through which we can extend existing packages with additional code; executable packages, which provide a convenient means for delivering programs as a coherent yet modular whole; recommended file and directory layouts for new packages; and distributing your new packages to other users. By the end of this course, you'll know where to start when producing greenfield Python libraries or Python executables, and the patterns you should follow to grow your system from a vigorous seedling into a strong and substantial oak. Before beginning the course, you should be familiar with basic use of Python's module and import system. From here, you should feel comfortable diving into other core Python language courses on classes and object-orientation, functions and functional programming, and robust resource and error handling. I hope you'll join me on this journey to learn about the Python package system with the Core Python: Organizing Larger Programs course at Pluralsight.