diff --git a/README.md b/README.md
index 96273ac..234c8da 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,7 @@
# Fluent Python 2e example code
-Example code for the book **Fluent Python, 2nd edition** by Luciano Ramalho (O'Reilly, 2021).
+Example code for the book **Fluent Python, Second Edition** by Luciano Ramalho (O'Reilly, 2022).
-> **BEWARE**: This is a work in progress!
->
-> * Code here may change and disappear without warning.
->
-> * Major reorganizations may happen at any time.
->
-> * No promises. No guarantees. Use at own risk.
## Table of Contents
@@ -16,37 +9,37 @@ All chapters are undergoing review and updates, including significant rewrites i
New chapters in **Fluent Python 2e** are marked with π.
-π¨ This table of contents is subject to change at any time until the book goes to the printer.
+> π¨ This table of contents is subject to change at any time until the book goes to the printer.
+Latest change: Old **Part IβPrologue** merged into new **Part IβData Structures**; parts renumbered accordingly; chapter numbers unchanged.
Part / Chapter #|Title|Directory|1st ed. Chapter #
---:|---|---|:---:
-**I β Prologue**|
+**I β Data Structures**|
1|The Python Data Model|[01-data-model](01-data-model)|1
-**II β Data Structures**|
2|An Array of Sequences|[02-array-seq](02-array-seq)|2
3|Dictionaries and Sets|[03-dict-set](03-dict-set)|3
4|Unicode Text versus Bytes|[04-text-byte](04-text-byte)|4
5|Data Class Builders|[05-data-classes](05-data-classes)|π
6|Object References, Mutability, and Recycling|[06-obj-ref](06-obj-ref)|8
-**III β Functions as Objects**|
+**II β Functions as Objects**|
7|Funcions as First-Class Objects|[07-1class-func](07-1class-func)|5
-8|Type Hints in Function Definitions|[08-def-type-hints](08-def-type-hints)|π
-9|Function Decorators and Closures|[09-closure-deco](09-closure-deco)|7
+8|Type Hints in Functions|[08-def-type-hints](08-def-type-hints)|π
+9|Decorators and Closures|[09-closure-deco](09-closure-deco)|7
10|Design Patterns with First-Class Functions|[10-dp-1class-func](10-dp-1class-func)|6
-**IV β Object-Oriented Idioms**|
+**III β Object-Oriented Idioms**|
11|A Pythonic Object|[11-pythonic-obj](11-pythonic-obj)|9
-12|Sequence Hacking, Hashing, and Slicing|[12-seq-hacking](12-seq-hacking)|10
+12|Special Methods for Sequences|[12-seq-hacking](12-seq-hacking)|10
13|Interfaces, Protocols, and ABCs|[13-protocl-abc](13-protocol-abc)|11
-14|Inheritance: For Good or For Worse|[14-inheritance](14-inheritance)|12
+14|Inheritance: For Better or For Worse|[14-inheritance](14-inheritance)|12
15|More About Type Hints|[15-more-types](15-more-types)|π
-16|Operator Overloading: Doing It Right|[16-op-overloading](16-op-overloading)|13
-**V β Control Flow**|
+16|Operator Overloading|[16-op-overloading](16-op-overloading)|13
+**IV β Control Flow**|
17|Iterators, Generators, and Classic Coroutines|[17-it-generator](17-it-generator)|14
-18|Context Managers and else Blocks|[18-with-match](18-with-match)|15
+18|with, match, and else Blocks|[18-with-match](18-with-match)|15
19|Concurrency Models in Python|[19-concurrency](19-concurrency)|π
20|Concurrent Executors|[20-executors](20-executors)|17
21|Asynchronous Programming|[21-async](21-async)|18
-**VI β Metaprogramming**|
+**V β Metaprogramming**|
22|Dynamic Attributes and Properties|[22-dyn-attr-prop](22-dyn-attr-prop)|19
23|Attribute Descriptors|[23-descriptor](23-descriptor)|20
24|Class Metaprogramming|[24-class-metaprog](24-class-metaprog)|21
diff --git a/links/FPY.LI.htaccess b/links/FPY.LI.htaccess
index 9f960f1..cc779db 100644
--- a/links/FPY.LI.htaccess
+++ b/links/FPY.LI.htaccess
@@ -1,19 +1,20 @@
ErrorDocument 404 /404.html
# main resources
+RedirectTemp /book https://www.oreilly.com/library/view/fluent-python-2nd/9781492056348/
RedirectTemp /code https://github.com/fluentpython/example-code-2e
RedirectTemp /home https://www.fluentpython.com/
# URLs mentioned at least three times
RedirectTemp /bisect https://www.fluentpython.com/extra/ordered-sequences-with-bisect/
-RedirectTemp /cardxvi https://www.python.org/dev/peps/pep-0484/#the-numeric-tower
+RedirectTemp /cardxvi https://www.python.org/dev/peps/pep-0484/#the-numeric-tower
RedirectTemp /collec https://docs.python.org/3/library/collections.html
RedirectTemp /dask https://dask.org/
RedirectTemp /dtmodel https://docs.python.org/3/reference/datamodel.html
RedirectTemp /descr101 https://www.python.org/download/releases/2.2.3/descrintro/
RedirectTemp /descrhow https://docs.python.org/3/howto/descriptor.html
RedirectTemp /doctest https://docs.python.org/3/library/doctest.html
-RedirectTemp /effectpy https://effectivepython.com/
+RedirectTemp /effectpy https://effectivepython.com/
RedirectTemp /fmtspec https://docs.python.org/3/library/string.html#formatspec
RedirectTemp /gunicorn https://gunicorn.org/
RedirectTemp /hashint https://www.fluentpython.com/extra/internals-of-sets-and-dicts/
@@ -25,16 +26,18 @@ RedirectTemp /norvigdp http://norvig.com/design-patterns/
RedirectTemp /nsphere https://en.wikipedia.org/wiki/N-sphere
RedirectTemp /oldcoro https://www.fluentpython.com/extra/classic-coroutines/
RedirectTemp /pandas https://pandas.pydata.org/
-RedirectTemp /pycook3 https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/
-RedirectTemp /pynut3 https://www.oreilly.com/library/view/python-in-a/9781491913833/
+RedirectTemp /pycook3 https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/
+RedirectTemp /pynut3 https://www.oreilly.com/library/view/python-in-a/9781491913833/
RedirectTemp /pypydif https://doc.pypy.org/en/latest/cpython_differences.html#subclasses-of-built-in-types
RedirectTemp /shed4051 https://github.com/python/typeshed/issues/4051
-RedirectTemp /slatkin https://effectivepython.com/
RedirectTemp /specattr https://docs.python.org/3/library/stdtypes.html#special-attributes
-RedirectTemp /typecoro https://docs.python.org/3.10/library/typing.html#typing.Coroutine
+RedirectTemp /typecoro https://docs.python.org/3.10/library/typing.html#typing.Coroutine
RedirectTemp /typing https://docs.python.org/3/library/typing.html
RedirectTemp /weakref https://www.fluentpython.com/extra/weak-references/
+# URL added during QA of the Second Edition
+RedirectTemp /bdfl https://www.artima.com/weblogs/viewpost.jsp?thread=235725
+
# Python Enhancement Proposals
RedirectTemp /pep218 https://www.python.org/dev/peps/pep-0218/
RedirectTemp /pep227 https://www.python.org/dev/peps/pep-0227/
@@ -149,7 +152,7 @@ RedirectTemp /a-18 https://www.python.org/doc/essays/
RedirectTemp /1-1 http://hugunin.net/story_of_jython.html
RedirectTemp /1-2 https://www.oreilly.com/library/view/jython-essentials/9781449397364/
RedirectTemp /1-3 https://docs.python.org/3/reference/lexical_analysis.html#reserved-classes-of-identifiers
-RedirectTemp /1-4 https://docs.python.org/2/library/string.html#format-string-syntax
+RedirectTemp /1-4 https://docs.python.org/3.10/library/string.html#format-string-syntax
RedirectTemp /1-5 https://stackoverflow.com/questions/1436703/what-is-the-difference-between-str-and-repr
RedirectTemp /1-6 https://docs.python.org/3/library/stdtypes.html#truth
RedirectTemp /1-7 https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists
diff --git a/links/README.md b/links/README.md
index 09c808a..6da595c 100644
--- a/links/README.md
+++ b/links/README.md
@@ -12,7 +12,10 @@ I replaced almost all URLs in the book with shortened versions that go through t
The site has an `.htaccess` file with *temporary* redirects.
When I find out a link is stale, I can thange the redirect in `.htaccess` to a new target,
-so the link in the book is back in service through the updated redirect.
+which may be a link to copy in the Internet Archive's
+[Wayback Machine](https://archive.org/web/)
+o the link in the book is back in service through the updated redirect.
+
## Help wanted
diff --git a/links/custom.htaccess b/links/custom.htaccess
index b9bc509..ad10802 100644
--- a/links/custom.htaccess
+++ b/links/custom.htaccess
@@ -1,19 +1,20 @@
ErrorDocument 404 /404.html
# main resources
+RedirectTemp /book https://www.oreilly.com/library/view/fluent-python-2nd/9781492056348/
RedirectTemp /code https://github.com/fluentpython/example-code-2e
RedirectTemp /home https://www.fluentpython.com/
# URLs mentioned at least three times
RedirectTemp /bisect https://www.fluentpython.com/extra/ordered-sequences-with-bisect/
-RedirectTemp /cardxvi https://www.python.org/dev/peps/pep-0484/#the-numeric-tower
+RedirectTemp /cardxvi https://www.python.org/dev/peps/pep-0484/#the-numeric-tower
RedirectTemp /collec https://docs.python.org/3/library/collections.html
RedirectTemp /dask https://dask.org/
RedirectTemp /dtmodel https://docs.python.org/3/reference/datamodel.html
RedirectTemp /descr101 https://www.python.org/download/releases/2.2.3/descrintro/
RedirectTemp /descrhow https://docs.python.org/3/howto/descriptor.html
RedirectTemp /doctest https://docs.python.org/3/library/doctest.html
-RedirectTemp /effectpy https://effectivepython.com/
+RedirectTemp /effectpy https://effectivepython.com/
RedirectTemp /fmtspec https://docs.python.org/3/library/string.html#formatspec
RedirectTemp /gunicorn https://gunicorn.org/
RedirectTemp /hashint https://www.fluentpython.com/extra/internals-of-sets-and-dicts/
@@ -25,16 +26,18 @@ RedirectTemp /norvigdp http://norvig.com/design-patterns/
RedirectTemp /nsphere https://en.wikipedia.org/wiki/N-sphere
RedirectTemp /oldcoro https://www.fluentpython.com/extra/classic-coroutines/
RedirectTemp /pandas https://pandas.pydata.org/
-RedirectTemp /pycook3 https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/
-RedirectTemp /pynut3 https://www.oreilly.com/library/view/python-in-a/9781491913833/
+RedirectTemp /pycook3 https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/
+RedirectTemp /pynut3 https://www.oreilly.com/library/view/python-in-a/9781491913833/
RedirectTemp /pypydif https://doc.pypy.org/en/latest/cpython_differences.html#subclasses-of-built-in-types
RedirectTemp /shed4051 https://github.com/python/typeshed/issues/4051
-RedirectTemp /slatkin https://effectivepython.com/
RedirectTemp /specattr https://docs.python.org/3/library/stdtypes.html#special-attributes
-RedirectTemp /typecoro https://docs.python.org/3.10/library/typing.html#typing.Coroutine
+RedirectTemp /typecoro https://docs.python.org/3.10/library/typing.html#typing.Coroutine
RedirectTemp /typing https://docs.python.org/3/library/typing.html
RedirectTemp /weakref https://www.fluentpython.com/extra/weak-references/
+# URL added during QA of the Second Edition
+RedirectTemp /bdfl https://www.artima.com/weblogs/viewpost.jsp?thread=235725
+
# Python Enhancement Proposals
RedirectTemp /pep218 https://www.python.org/dev/peps/pep-0218/
RedirectTemp /pep227 https://www.python.org/dev/peps/pep-0227/
diff --git a/links/deploy.sh b/links/deploy.sh
new file mode 100755
index 0000000..ced9bd9
--- /dev/null
+++ b/links/deploy.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+scp FPY.LI.htaccess dh_i4p2ka@fpy.li:~/fpy.li/.htaccess