Python has evolved over the years and has become the primary choice of developers in various fields. The purpose of this book is to help readers develop readable, reliable, and maintainable programs in Python.
Starting with an introduction to the concept of modules and packages, this book shows how you can use these building blocks to organize a complex program into logical parts and make sure those parts are working correctly together.
Using clearly written, real-world examples, this book demonstrates how you can use modular techniques to build better programs. A number of common modular programming patterns are covered, including divide-and-conquer, abstraction, encapsulation, wrappers and extensibility. You will also learn how to test your modules and packages, how to prepare your code for sharing with other people, and how to publish your modules and packages on GitHub and the Python Package Index so that other people can use them. Finally, you will learn how to use modular design techniques to be a more effective programmer.
What you will learn
Learn how to use modules and packages to organize your Python code
Understand how to use the import statement to load modules and packages into your program
Use common module patterns such as abstraction and encapsulation to write better programs
Discover how to create self-testing Python packages
Create reusable modules that other programmers can use
Learn how to use GitHub and the Python Package Index to share your code with other people
Make use of modules and packages that others have written
Use modular techniques to build robust systems that can handle complexity and changing requirements over time
About the Author
Erik Westra has been a professional software developer for over 25 years, and has worked almost exclusively in Python for the past decade. Erik's early interest in graphical user interface design led to the development of one of the most advanced urgent courier dispatch systems used by messenger and courier companies worldwide. In recent years, Erik has been involved in the design and implementation of systems matching seekers and providers of goods and services across a range of geographical areas, as well as real-time messaging and payments systems. This work has included the creation of real-time geocoders and map-based views of constantly changing data. Erik is based in New Zealand, and works for companies worldwide.
Erik is also the author of the Packt titles Python Geospatial Development, Python Geospatial Analysis, and Building Mapping Applications with QGIS.
Author(s): Erik Westra
Publisher: Packt Publishing
Year: 2016
Language: English
Pages: 0
City: Birmingham
Cover
Copyright
Credits
About the Author
About the Reviewer
www.PacktPub.com
Table of Contents
Preface
Chapter 1: Introducing Modular Programming
Introducing Python modules
Introducing Python packages
Using modules and packages to organize a program
Why use modular programming techniques?
Programming as a process
The Python Standard Library
Creating your first module
Caching
Writing a cache module
Using the cache
Summary
Chapter 2: Writing Your First Modular Program
The inventory control system
Designing the inventory control system
The data storage module The user interface moduleThe report generator module
The main program
Implementing the inventory control system
Implementing the data storage module
Implementing the user interface module
Implementing the report generator module
Implementing the main program
Summary
Chapter 3: Using Modules and Packages
Modules and packages
Packages within packages
Initializing a module
Initialization functions
Initializing a package
How to import anything
What does the import statement actually do?
Using the import statement
Relative imports
Controlling what gets imported Circular dependenciesRunning modules from the command line
Summary
Chapter 4: Using Modules for Real-World Programming
Introducing Charter
Designing Charter
Implementing Charter
Implementing the chart.py module
Implementing the generator.py module
The Pillow library
Renderers
Testing the code
Rendering the title
Rendering the x axis
The remaining renderers
Testing Charter
The fly in the ointment --
changing requirements
Redesigning Charter
Refactoring the code
Implementing the PDF renderer modules
Testing the code
Lessons learned
Summary Chapter 5: Working with Module PatternsDivide and conquer
Abstraction
Encapsulation
Wrappers
Extensible modules
Dynamic imports
Plugins
Hooks
Summary
Chapter 6: Creating Reusable Modules
Using modules and packages to share your code
What makes a module reusable?
Functioning as a standalone unit
Using relative imports
Noting external dependencies
What makes a good reusable module?
Solving a general problem
Following standard conventions
Having clear documentation
Examples of reusable modules
requests
python-dateutil
lxml
Designing a reusable package Implementing a reusable packageTesting our reusable package
Summary
Chapter 7: Advanced Module Techniques
Optional imports
Local imports
Tweaking imports using sys.path
Import gotchas
Using an existing name for your module or package
Naming a Python script after a module or package
Adding package directories to sys.path
Executing and importing the same module
Using modules and packages with the Python interactive interpreter
Dealing with global variables
Package configuration
Package data
Summary
Chapter 8: Testing and Deploying Modules
Testing modules and packages