Introduction
Getting started with migrating Python
()
1. Python 2 and Python 3
The challenges of migrating from Python 2 to 3
()
Historical overview
()
The official how to guide
()
The obvious differences in Python 3
()
2. Feature Comparisons
The language syntax changes
()
Syntax changes that have to wait
()
Changes to the internal types
()
Changes to Python built-in functions
()
Changes to the Python standard library
()
3. Conversion Strategies: Manual or Automated
Navigation among the strategies
()
Readying the toolbox
()
Manual rewrite
()
Automated migration via 2to3
()
Final cleanup
()
4. Using Six
Overview of the features of six
()
Syntax wrapping with six
()
Handling class definitions with six
()
Using six to manage built-in functions
()
Using six with standard library changes
()
5. Using Pytest for Unit Testing
Overview of the goals of unit testing
()
Capturing Python 2 features as tests
()
Mocking and monkey patching
()
Design for testability
()
Bugs: Fix or preserve?
()
6. Using 2to3 to Automate Conversion
Overview of the features of 2to3
()
Syntax and class definitions
()
Built-ins and library migrations
()
Test automation with tox
()
Type checking with mypy
()
Conclusion
Final thoughts
()
Continuing on with Python 3
()