One important consideration when designing a package is don't. The Zen of Python poem (also known as import this) includes this line:
"Flat is better than nested"
We can see this in the Python standard library. The structure of the library is relatively flat; there are few nested modules. Deeply nested packages can be overused. We should be skeptical of excessive nesting.
A Python package is a directory with an extra file, __init__.py. The directory name must be a proper Python name. OS names include a lot of characters that are not allowed in Python names.
We often see three design patterns for packages:
- Simple packages are a directory with an empty __init__.py file. This package name becomes a qualifier for a collection of modules inside the package. We'll use the following code to pick one of the modules from the package:
import package...