This course is an introduction to features of the Python language which will help you structure your code once your needs move beyond a few Python modules. You'll learn where to start plus the patterns you should follow to grow your Python projects.
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.
Austin is a founding director of Sixty North, a software consulting,
training, and application development company. He's a native of Texas
but currently lives in Norway where he writes software, runs a local
software interest group, and presents and teaches whenever he can.
Robert Smallshire is a founding director of Sixty North, a software product and consulting business in based in Norway. He has held several senior software architecture and technical management roles, and he is a regular conference speaker. Python is his weapon of choice.
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.