Style Guide
The Python code and docstring format mostly follows Google's Python Style Guide, but the pre-commit config is the authoritative source for code format compliance.
Nits:
- Avoid imports in 
__init__.py(reduces the likelihood of circular imports). - Prefer pure functions where possible.
 - Define all class attributes inside 
__init__so all attributes are visible in one place. Attributes that are defined later can be set asNoneas a placeholder. - Prefer f-strings (
f'name: {name}) over string format ('name: {}'.format(name)). Never use the%operator. - Prefer typing.NamedTuple over collections.namedtuple.
 - Use lower-case and no punctuation for log messages, but use upper-case and punctuation for exception values.
 - Document all exceptions that may be raised by a function in the docstring.