diff --git a/pyguide.md b/pyguide.md
index 69e202ee2..6407be9f0 100644
--- a/pyguide.md
+++ b/pyguide.md
@@ -11,79 +11,157 @@ See README.md for details.
Table of Contents
-- [1 Background](#s1-background)
-- [2 Python Language Rules](#s2-python-language-rules)
- * [2.1 Lint](#s2.1-lint)
- * [2.2 Imports](#s2.2-imports)
- * [2.3 Packages](#s2.3-packages)
- * [2.4 Exceptions](#s2.4-exceptions)
- * [2.5 Mutable Global State](#s2.5-global-variables)
- * [2.6 Nested/Local/Inner Classes and Functions](#s2.6-nested)
- * [2.7 Comprehensions & Generator Expressions](#s2.7-comprehensions)
- * [2.8 Default Iterators and Operators](#s2.8-default-iterators-and-operators)
- * [2.9 Generators](#s2.9-generators)
- * [2.10 Lambda Functions](#s2.10-lambda-functions)
- * [2.11 Conditional Expressions](#s2.11-conditional-expressions)
- * [2.12 Default Argument Values](#s2.12-default-argument-values)
- * [2.13 Properties](#s2.13-properties)
- * [2.14 True/False Evaluations](#s2.14-truefalse-evaluations)
- * [2.16 Lexical Scoping](#s2.16-lexical-scoping)
- * [2.17 Function and Method Decorators](#s2.17-function-and-method-decorators)
- * [2.18 Threading](#s2.18-threading)
- * [2.19 Power Features](#s2.19-power-features)
- * [2.20 Modern Python: from \_\_future\_\_ imports](#s2.20-modern-python)
- * [2.21 Type Annotated Code](#s2.21-type-annotated-code)
-- [3 Python Style Rules](#s3-python-style-rules)
- * [3.1 Semicolons](#s3.1-semicolons)
- * [3.2 Line length](#s3.2-line-length)
- * [3.3 Parentheses](#s3.3-parentheses)
- * [3.4 Indentation](#s3.4-indentation)
- + [3.4.1 Trailing commas in sequences of items?](#s3.4.1-trailing-commas)
- * [3.5 Blank Lines](#s3.5-blank-lines)
- * [3.6 Whitespace](#s3.6-whitespace)
- * [3.7 Shebang Line](#s3.7-shebang-line)
- * [3.8 Comments and Docstrings](#s3.8-comments-and-docstrings)
- + [3.8.1 Docstrings](#s3.8.1-comments-in-doc-strings)
- + [3.8.2 Modules](#s3.8.2-comments-in-modules)
- + [3.8.2.1 Test modules](#s3.8.2.1-test-modules)
- + [3.8.3 Functions and Methods](#s3.8.3-functions-and-methods)
- + [3.8.3.1 Overridden Methods](#s3.8.3.1-overridden-methods)
- + [3.8.4 Classes](#s3.8.4-comments-in-classes)
- + [3.8.5 Block and Inline Comments](#s3.8.5-block-and-inline-comments)
- + [3.8.6 Punctuation, Spelling, and Grammar](#s3.8.6-punctuation-spelling-and-grammar)
- * [3.10 Strings](#s3.10-strings)
- + [3.10.1 Logging](#s3.10.1-logging)
- + [3.10.2 Error Messages](#s3.10.2-error-messages)
- * [3.11 Files, Sockets, and similar Stateful Resources](#s3.11-files-sockets-closeables)
- * [3.12 TODO Comments](#s3.12-todo-comments)
- * [3.13 Imports formatting](#s3.13-imports-formatting)
- * [3.14 Statements](#s3.14-statements)
- * [3.15 Accessors](#s3.15-accessors)
- * [3.16 Naming](#s3.16-naming)
- + [3.16.1 Names to Avoid](#s3.16.1-names-to-avoid)
- + [3.16.2 Naming Conventions](#s3.16.2-naming-conventions)
- + [3.16.3 File Naming](#s3.16.3-file-naming)
- + [3.16.4 Guidelines derived from Guido's Recommendations](#s3.16.4-guidelines-derived-from-guidos-recommendations)
- * [3.17 Main](#s3.17-main)
- * [3.18 Function length](#s3.18-function-length)
- * [3.19 Type Annotations](#s3.19-type-annotations)
- + [3.19.1 General Rules](#s3.19.1-general-rules)
- + [3.19.2 Line Breaking](#s3.19.2-line-breaking)
- + [3.19.3 Forward Declarations](#s3.19.3-forward-declarations)
- + [3.19.4 Default Values](#s3.19.4-default-values)
- + [3.19.5 NoneType](#s3.19.5-nonetype)
- + [3.19.6 Type Aliases](#s3.19.6-type-aliases)
- + [3.19.7 Ignoring Types](#s3.19.7-ignoring-types)
- + [3.19.8 Typing Variables](#s3.19.8-typing-variables)
- + [3.19.9 Tuples vs Lists](#s3.19.9-tuples-vs-lists)
- + [3.19.10 Type variables](#s3.19.10-typevars)
- + [3.19.11 String types](#s3.19.11-string-types)
- + [3.19.12 Imports For Typing](#s3.19.12-imports-for-typing)
- + [3.19.13 Conditional Imports](#s3.19.13-conditional-imports)
- + [3.19.14 Circular Dependencies](#s3.19.14-circular-dependencies)
- + [3.19.15 Generics](#s3.19.15-generics)
- + [3.19.16 Build Dependencies](#s3.19.16-build-dependencies)
-- [4 Parting Words](#4-parting-words)
+- [Google Python Style Guide](#google-python-style-guide)
+ - [1 Background](#1-background)
+ - [2 Python Language Rules](#2-python-language-rules)
+ - [2.1 Lint](#21-lint)
+ - [2.1.1 Definition](#211-definition)
+ - [2.1.2 Pros](#212-pros)
+ - [2.1.3 Cons](#213-cons)
+ - [2.1.4 Decision](#214-decision)
+ - [2.2 Imports](#22-imports)
+ - [2.2.1 Definition](#221-definition)
+ - [2.2.2 Pros](#222-pros)
+ - [2.2.3 Cons](#223-cons)
+ - [2.2.4 Decision](#224-decision)
+ - [2.2.4.1 Exemptions](#2241-exemptions)
+ - [2.3 Packages](#23-packages)
+ - [2.3.1 Pros](#231-pros)
+ - [2.3.2 Cons](#232-cons)
+ - [2.3.3 Decision](#233-decision)
+ - [2.4 Exceptions](#24-exceptions)
+ - [2.4.1 Definition](#241-definition)
+ - [2.4.2 Pros](#242-pros)
+ - [2.4.3 Cons](#243-cons)
+ - [2.4.4 Decision](#244-decision)
+ - [2.5 Mutable Global State](#25-mutable-global-state)
+ - [2.5.1 Definition](#251-definition)
+ - [2.5.2 Pros](#252-pros)
+ - [2.5.3 Cons](#253-cons)
+ - [2.5.4 Decision](#254-decision)
+ - [2.6 Nested/Local/Inner Classes and Functions](#26-nestedlocalinner-classes-and-functions)
+ - [2.6.1 Definition](#261-definition)
+ - [2.6.2 Pros](#262-pros)
+ - [2.6.3 Cons](#263-cons)
+ - [2.6.4 Decision](#264-decision)
+ - [2.7 Comprehensions \& Generator Expressions](#27-comprehensions--generator-expressions)
+ - [2.7.1 Definition](#271-definition)
+ - [2.7.2 Pros](#272-pros)
+ - [2.7.3 Cons](#273-cons)
+ - [2.7.4 Decision](#274-decision)
+ - [2.8 Default Iterators and Operators](#28-default-iterators-and-operators)
+ - [2.8.1 Definition](#281-definition)
+ - [2.8.2 Pros](#282-pros)
+ - [2.8.3 Cons](#283-cons)
+ - [2.8.4 Decision](#284-decision)
+ - [2.9 Generators](#29-generators)
+ - [2.9.1 Definition](#291-definition)
+ - [2.9.2 Pros](#292-pros)
+ - [2.9.3 Cons](#293-cons)
+ - [2.9.4 Decision](#294-decision)
+ - [2.10 Lambda Functions](#210-lambda-functions)
+ - [2.10.1 Definition](#2101-definition)
+ - [2.10.2 Pros](#2102-pros)
+ - [2.10.3 Cons](#2103-cons)
+ - [2.10.4 Decision](#2104-decision)
+ - [2.11 Conditional Expressions](#211-conditional-expressions)
+ - [2.11.1 Definition](#2111-definition)
+ - [2.11.2 Pros](#2112-pros)
+ - [2.11.3 Cons](#2113-cons)
+ - [2.11.4 Decision](#2114-decision)
+ - [2.12 Default Argument Values](#212-default-argument-values)
+ - [2.12.1 Definition](#2121-definition)
+ - [2.12.2 Pros](#2122-pros)
+ - [2.12.3 Cons](#2123-cons)
+ - [2.12.4 Decision](#2124-decision)
+ - [2.13 Properties](#213-properties)
+ - [2.13.1 Definition](#2131-definition)
+ - [2.13.2 Pros](#2132-pros)
+ - [2.13.3 Cons](#2133-cons)
+ - [2.13.4 Decision](#2134-decision)
+ - [2.14 True/False Evaluations](#214-truefalse-evaluations)
+ - [2.14.1 Definition](#2141-definition)
+ - [2.14.2 Pros](#2142-pros)
+ - [2.14.3 Cons](#2143-cons)
+ - [2.14.4 Decision](#2144-decision)
+ - [2.16 Lexical Scoping](#216-lexical-scoping)
+ - [2.16.1 Definition](#2161-definition)
+ - [2.16.2 Pros](#2162-pros)
+ - [2.16.3 Cons](#2163-cons)
+ - [2.16.4 Decision](#2164-decision)
+ - [2.17 Function and Method Decorators](#217-function-and-method-decorators)
+ - [2.17.1 Definition](#2171-definition)
+ - [2.17.2 Pros](#2172-pros)
+ - [2.17.3 Cons](#2173-cons)
+ - [2.17.4 Decision](#2174-decision)
+ - [2.18 Threading](#218-threading)
+ - [2.19 Power Features](#219-power-features)
+ - [2.19.1 Definition](#2191-definition)
+ - [2.19.2 Pros](#2192-pros)
+ - [2.19.3 Cons](#2193-cons)
+ - [2.19.4 Decision](#2194-decision)
+ - [2.20 Modern Python: from \_\_future\_\_ imports](#220-modern-python-from-__future__-imports)
+ - [2.20.1 Definition](#2201-definition)
+ - [2.20.2 Pros](#2202-pros)
+ - [2.20.3 Cons](#2203-cons)
+ - [2.20.4 Decision](#2204-decision)
+ - [from \_\_future\_\_ imports](#from-__future__-imports)
+ - [2.21 Type Annotated Code](#221-type-annotated-code)
+ - [2.21.1 Definition](#2211-definition)
+ - [2.21.2 Pros](#2212-pros)
+ - [2.21.3 Cons](#2213-cons)
+ - [2.21.4 Decision](#2214-decision)
+ - [3 Python Style Rules](#3-python-style-rules)
+ - [3.1 Semicolons](#31-semicolons)
+ - [3.2 Line length](#32-line-length)
+ - [3.3 Parentheses](#33-parentheses)
+ - [3.4 Indentation](#34-indentation)
+ - [3.4.1 Trailing commas in sequences of items?](#341-trailing-commas-in-sequences-of-items)
+ - [3.5 Blank Lines](#35-blank-lines)
+ - [3.6 Whitespace](#36-whitespace)
+ - [3.7 Shebang Line](#37-shebang-line)
+ - [3.8 Comments and Docstrings](#38-comments-and-docstrings)
+ - [3.8.1 Docstrings](#381-docstrings)
+ - [3.8.2 Modules](#382-modules)
+ - [3.8.2.1 Test modules](#3821-test-modules)
+ - [3.8.3 Functions and Methods](#383-functions-and-methods)
+ - [3.8.3.1 Overridden Methods](#3831-overridden-methods)
+ - [3.8.4 Classes](#384-classes)
+ - [3.8.5 Block and Inline Comments](#385-block-and-inline-comments)
+ - [3.8.6 Punctuation, Spelling, and Grammar](#386-punctuation-spelling-and-grammar)
+ - [3.10 Strings](#310-strings)
+ - [3.10.1 Logging](#3101-logging)
+ - [3.10.2 Error Messages](#3102-error-messages)
+ - [3.11 Files, Sockets, and similar Stateful Resources](#311-files-sockets-and-similar-stateful-resources)
+ - [3.12 TODO Comments](#312-todo-comments)
+ - [3.13 Imports formatting](#313-imports-formatting)
+ - [3.14 Statements](#314-statements)
+ - [3.15 Getters and Setters](#315-getters-and-setters)
+ - [3.16 Naming](#316-naming)
+ - [3.16.1 Names to Avoid](#3161-names-to-avoid)
+ - [3.16.2 Naming Conventions](#3162-naming-conventions)
+ - [3.16.3 File Naming](#3163-file-naming)
+ - [3.16.4 Guidelines derived from Guido's Recommendations](#3164-guidelines-derived-from-guidos-recommendations)
+ - [3.16.5 Mathematical Notation](#3165-mathematical-notation)
+ - [3.17 Main](#317-main)
+ - [3.18 Function length](#318-function-length)
+ - [3.19 Type Annotations](#319-type-annotations)
+ - [3.19.1 General Rules](#3191-general-rules)
+ - [3.19.2 Line Breaking](#3192-line-breaking)
+ - [3.19.3 Forward Declarations](#3193-forward-declarations)
+ - [3.19.4 Default Values](#3194-default-values)
+ - [3.19.5 NoneType](#3195-nonetype)
+ - [3.19.6 Type Aliases](#3196-type-aliases)
+ - [3.19.7 Ignoring Types](#3197-ignoring-types)
+ - [3.19.8 Typing Variables](#3198-typing-variables)
+ - [3.19.9 Tuples vs Lists](#3199-tuples-vs-lists)
+ - [3.19.10 Type variables](#31910-type-variables)
+ - [3.19.11 String types](#31911-string-types)
+ - [3.19.12 Imports For Typing](#31912-imports-for-typing)
+ - [3.19.13 Conditional Imports](#31913-conditional-imports)
+ - [3.19.14 Circular Dependencies](#31914-circular-dependencies)
+ - [3.19.15 Generics](#31915-generics)
+ - [4 Parting Words](#4-parting-words)
@@ -287,6 +365,11 @@ Exemptions from this rule:
* [`typing_extensions` module](https://github.com/python/typing_extensions/blob/main/README.md)
* Redirects from the
[six.moves module](https://six.readthedocs.io/#module-six.moves).
+* Exposing classes in `__init__.py`
+
+ ```python
+ from package.module import Class
+ ```