diff --git a/05-record-like/README.asciidoc b/05-record-like/README.asciidoc new file mode 100644 index 0000000..b795def --- /dev/null +++ b/05-record-like/README.asciidoc @@ -0,0 +1 @@ +== Record-like Structures diff --git a/05-1class-func/README.rst b/06-1class-func/README.rst similarity index 100% rename from 05-1class-func/README.rst rename to 06-1class-func/README.rst diff --git a/05-1class-func/bingocall.py b/06-1class-func/bingocall.py similarity index 100% rename from 05-1class-func/bingocall.py rename to 06-1class-func/bingocall.py diff --git a/05-1class-func/clip.py b/06-1class-func/clip.py similarity index 100% rename from 05-1class-func/clip.py rename to 06-1class-func/clip.py diff --git a/05-1class-func/clip_annot.py b/06-1class-func/clip_annot.py similarity index 100% rename from 05-1class-func/clip_annot.py rename to 06-1class-func/clip_annot.py diff --git a/05-1class-func/clip_annot_signature.rst b/06-1class-func/clip_annot_signature.rst similarity index 100% rename from 05-1class-func/clip_annot_signature.rst rename to 06-1class-func/clip_annot_signature.rst diff --git a/05-1class-func/clip_introspection.rst b/06-1class-func/clip_introspection.rst similarity index 100% rename from 05-1class-func/clip_introspection.rst rename to 06-1class-func/clip_introspection.rst diff --git a/05-1class-func/clip_signature.rst b/06-1class-func/clip_signature.rst similarity index 100% rename from 05-1class-func/clip_signature.rst rename to 06-1class-func/clip_signature.rst diff --git a/05-1class-func/tagger.py b/06-1class-func/tagger.py similarity index 100% rename from 05-1class-func/tagger.py rename to 06-1class-func/tagger.py diff --git a/06-dp-1class-func/README.rst b/07-dp-1class-func/README.rst similarity index 100% rename from 06-dp-1class-func/README.rst rename to 07-dp-1class-func/README.rst diff --git a/06-dp-1class-func/classic_strategy.py b/07-dp-1class-func/classic_strategy.py similarity index 100% rename from 06-dp-1class-func/classic_strategy.py rename to 07-dp-1class-func/classic_strategy.py diff --git a/06-dp-1class-func/promotions.py b/07-dp-1class-func/promotions.py similarity index 100% rename from 06-dp-1class-func/promotions.py rename to 07-dp-1class-func/promotions.py diff --git a/06-dp-1class-func/strategy.py b/07-dp-1class-func/strategy.py similarity index 100% rename from 06-dp-1class-func/strategy.py rename to 07-dp-1class-func/strategy.py diff --git a/06-dp-1class-func/strategy_best.py b/07-dp-1class-func/strategy_best.py similarity index 100% rename from 06-dp-1class-func/strategy_best.py rename to 07-dp-1class-func/strategy_best.py diff --git a/06-dp-1class-func/strategy_best2.py b/07-dp-1class-func/strategy_best2.py similarity index 100% rename from 06-dp-1class-func/strategy_best2.py rename to 07-dp-1class-func/strategy_best2.py diff --git a/06-dp-1class-func/strategy_best3.py b/07-dp-1class-func/strategy_best3.py similarity index 100% rename from 06-dp-1class-func/strategy_best3.py rename to 07-dp-1class-func/strategy_best3.py diff --git a/07-closure-deco/README.rst b/08-closure-deco/README.rst similarity index 100% rename from 07-closure-deco/README.rst rename to 08-closure-deco/README.rst diff --git a/07-closure-deco/average.py b/08-closure-deco/average.py similarity index 100% rename from 07-closure-deco/average.py rename to 08-closure-deco/average.py diff --git a/07-closure-deco/average_oo.py b/08-closure-deco/average_oo.py similarity index 100% rename from 07-closure-deco/average_oo.py rename to 08-closure-deco/average_oo.py diff --git a/07-closure-deco/clockdeco.py b/08-closure-deco/clockdeco.py similarity index 100% rename from 07-closure-deco/clockdeco.py rename to 08-closure-deco/clockdeco.py diff --git a/07-closure-deco/clockdeco_cls.py b/08-closure-deco/clockdeco_cls.py similarity index 100% rename from 07-closure-deco/clockdeco_cls.py rename to 08-closure-deco/clockdeco_cls.py diff --git a/07-closure-deco/clockdeco_demo.py b/08-closure-deco/clockdeco_demo.py similarity index 100% rename from 07-closure-deco/clockdeco_demo.py rename to 08-closure-deco/clockdeco_demo.py diff --git a/07-closure-deco/clockdeco_param.py b/08-closure-deco/clockdeco_param.py similarity index 100% rename from 07-closure-deco/clockdeco_param.py rename to 08-closure-deco/clockdeco_param.py diff --git a/07-closure-deco/clockdeco_param_demo1.py b/08-closure-deco/clockdeco_param_demo1.py similarity index 100% rename from 07-closure-deco/clockdeco_param_demo1.py rename to 08-closure-deco/clockdeco_param_demo1.py diff --git a/07-closure-deco/clockdeco_param_demo2.py b/08-closure-deco/clockdeco_param_demo2.py similarity index 100% rename from 07-closure-deco/clockdeco_param_demo2.py rename to 08-closure-deco/clockdeco_param_demo2.py diff --git a/07-closure-deco/fibo_demo.py b/08-closure-deco/fibo_demo.py similarity index 100% rename from 07-closure-deco/fibo_demo.py rename to 08-closure-deco/fibo_demo.py diff --git a/07-closure-deco/fibo_demo_lru.py b/08-closure-deco/fibo_demo_lru.py similarity index 100% rename from 07-closure-deco/fibo_demo_lru.py rename to 08-closure-deco/fibo_demo_lru.py diff --git a/07-closure-deco/generic.py b/08-closure-deco/generic.py similarity index 100% rename from 07-closure-deco/generic.py rename to 08-closure-deco/generic.py diff --git a/07-closure-deco/global_x_local.rst b/08-closure-deco/global_x_local.rst similarity index 100% rename from 07-closure-deco/global_x_local.rst rename to 08-closure-deco/global_x_local.rst diff --git a/07-closure-deco/registration.py b/08-closure-deco/registration.py similarity index 100% rename from 07-closure-deco/registration.py rename to 08-closure-deco/registration.py diff --git a/07-closure-deco/registration_abridged.py b/08-closure-deco/registration_abridged.py similarity index 100% rename from 07-closure-deco/registration_abridged.py rename to 08-closure-deco/registration_abridged.py diff --git a/07-closure-deco/registration_param.py b/08-closure-deco/registration_param.py similarity index 100% rename from 07-closure-deco/registration_param.py rename to 08-closure-deco/registration_param.py diff --git a/07-closure-deco/strategy_best4.py b/08-closure-deco/strategy_best4.py similarity index 100% rename from 07-closure-deco/strategy_best4.py rename to 08-closure-deco/strategy_best4.py diff --git a/09-def-type-hints/README.asciidoc b/09-def-type-hints/README.asciidoc new file mode 100644 index 0000000..4d89408 --- /dev/null +++ b/09-def-type-hints/README.asciidoc @@ -0,0 +1 @@ +== Type Hints in Function Definitions diff --git a/08-obj-ref/README.rst b/10-obj-ref/README.rst similarity index 100% rename from 08-obj-ref/README.rst rename to 10-obj-ref/README.rst diff --git a/08-obj-ref/bus.py b/10-obj-ref/bus.py similarity index 100% rename from 08-obj-ref/bus.py rename to 10-obj-ref/bus.py diff --git a/08-obj-ref/cheese.py b/10-obj-ref/cheese.py similarity index 100% rename from 08-obj-ref/cheese.py rename to 10-obj-ref/cheese.py diff --git a/08-obj-ref/haunted_bus.py b/10-obj-ref/haunted_bus.py similarity index 100% rename from 08-obj-ref/haunted_bus.py rename to 10-obj-ref/haunted_bus.py diff --git a/08-obj-ref/twilight_bus.py b/10-obj-ref/twilight_bus.py similarity index 100% rename from 08-obj-ref/twilight_bus.py rename to 10-obj-ref/twilight_bus.py diff --git a/09-pythonic-obj/README.rst b/11-pythonic-obj/README.rst similarity index 100% rename from 09-pythonic-obj/README.rst rename to 11-pythonic-obj/README.rst diff --git a/09-pythonic-obj/mem_test.py b/11-pythonic-obj/mem_test.py similarity index 100% rename from 09-pythonic-obj/mem_test.py rename to 11-pythonic-obj/mem_test.py diff --git a/09-pythonic-obj/private/Confidential.java b/11-pythonic-obj/private/Confidential.java similarity index 100% rename from 09-pythonic-obj/private/Confidential.java rename to 11-pythonic-obj/private/Confidential.java diff --git a/09-pythonic-obj/private/Expose.java b/11-pythonic-obj/private/Expose.java similarity index 100% rename from 09-pythonic-obj/private/Expose.java rename to 11-pythonic-obj/private/Expose.java diff --git a/09-pythonic-obj/private/expose.py b/11-pythonic-obj/private/expose.py similarity index 100% rename from 09-pythonic-obj/private/expose.py rename to 11-pythonic-obj/private/expose.py diff --git a/09-pythonic-obj/private/leakprivate.py b/11-pythonic-obj/private/leakprivate.py similarity index 100% rename from 09-pythonic-obj/private/leakprivate.py rename to 11-pythonic-obj/private/leakprivate.py diff --git a/09-pythonic-obj/private/no_respect.py b/11-pythonic-obj/private/no_respect.py similarity index 100% rename from 09-pythonic-obj/private/no_respect.py rename to 11-pythonic-obj/private/no_respect.py diff --git a/09-pythonic-obj/vector2d_v0.py b/11-pythonic-obj/vector2d_v0.py similarity index 100% rename from 09-pythonic-obj/vector2d_v0.py rename to 11-pythonic-obj/vector2d_v0.py diff --git a/09-pythonic-obj/vector2d_v1.py b/11-pythonic-obj/vector2d_v1.py similarity index 100% rename from 09-pythonic-obj/vector2d_v1.py rename to 11-pythonic-obj/vector2d_v1.py diff --git a/09-pythonic-obj/vector2d_v2.py b/11-pythonic-obj/vector2d_v2.py similarity index 100% rename from 09-pythonic-obj/vector2d_v2.py rename to 11-pythonic-obj/vector2d_v2.py diff --git a/09-pythonic-obj/vector2d_v2_fmt_snippet.py b/11-pythonic-obj/vector2d_v2_fmt_snippet.py similarity index 100% rename from 09-pythonic-obj/vector2d_v2_fmt_snippet.py rename to 11-pythonic-obj/vector2d_v2_fmt_snippet.py diff --git a/09-pythonic-obj/vector2d_v3.py b/11-pythonic-obj/vector2d_v3.py similarity index 100% rename from 09-pythonic-obj/vector2d_v3.py rename to 11-pythonic-obj/vector2d_v3.py diff --git a/09-pythonic-obj/vector2d_v3_prophash.py b/11-pythonic-obj/vector2d_v3_prophash.py similarity index 100% rename from 09-pythonic-obj/vector2d_v3_prophash.py rename to 11-pythonic-obj/vector2d_v3_prophash.py diff --git a/09-pythonic-obj/vector2d_v3_slots.py b/11-pythonic-obj/vector2d_v3_slots.py similarity index 100% rename from 09-pythonic-obj/vector2d_v3_slots.py rename to 11-pythonic-obj/vector2d_v3_slots.py diff --git a/10-seq-hacking/README.rst b/12-seq-hacking/README.rst similarity index 100% rename from 10-seq-hacking/README.rst rename to 12-seq-hacking/README.rst diff --git a/10-seq-hacking/vector_v1.py b/12-seq-hacking/vector_v1.py similarity index 100% rename from 10-seq-hacking/vector_v1.py rename to 12-seq-hacking/vector_v1.py diff --git a/10-seq-hacking/vector_v2.py b/12-seq-hacking/vector_v2.py similarity index 100% rename from 10-seq-hacking/vector_v2.py rename to 12-seq-hacking/vector_v2.py diff --git a/10-seq-hacking/vector_v3.py b/12-seq-hacking/vector_v3.py similarity index 100% rename from 10-seq-hacking/vector_v3.py rename to 12-seq-hacking/vector_v3.py diff --git a/10-seq-hacking/vector_v4.py b/12-seq-hacking/vector_v4.py similarity index 100% rename from 10-seq-hacking/vector_v4.py rename to 12-seq-hacking/vector_v4.py diff --git a/10-seq-hacking/vector_v5.py b/12-seq-hacking/vector_v5.py similarity index 100% rename from 10-seq-hacking/vector_v5.py rename to 12-seq-hacking/vector_v5.py diff --git a/11-iface-abc/README.rst b/13-iface-abc/README.rst similarity index 100% rename from 11-iface-abc/README.rst rename to 13-iface-abc/README.rst diff --git a/11-iface-abc/bingo.py b/13-iface-abc/bingo.py similarity index 100% rename from 11-iface-abc/bingo.py rename to 13-iface-abc/bingo.py diff --git a/11-iface-abc/drum.py b/13-iface-abc/drum.py similarity index 100% rename from 11-iface-abc/drum.py rename to 13-iface-abc/drum.py diff --git a/11-iface-abc/frenchdeck2.py b/13-iface-abc/frenchdeck2.py similarity index 100% rename from 11-iface-abc/frenchdeck2.py rename to 13-iface-abc/frenchdeck2.py diff --git a/11-iface-abc/lotto.py b/13-iface-abc/lotto.py similarity index 100% rename from 11-iface-abc/lotto.py rename to 13-iface-abc/lotto.py diff --git a/11-iface-abc/tombola.py b/13-iface-abc/tombola.py similarity index 100% rename from 11-iface-abc/tombola.py rename to 13-iface-abc/tombola.py diff --git a/11-iface-abc/tombola_runner.py b/13-iface-abc/tombola_runner.py similarity index 100% rename from 11-iface-abc/tombola_runner.py rename to 13-iface-abc/tombola_runner.py diff --git a/11-iface-abc/tombola_subhook.py b/13-iface-abc/tombola_subhook.py similarity index 100% rename from 11-iface-abc/tombola_subhook.py rename to 13-iface-abc/tombola_subhook.py diff --git a/11-iface-abc/tombola_tests.rst b/13-iface-abc/tombola_tests.rst similarity index 100% rename from 11-iface-abc/tombola_tests.rst rename to 13-iface-abc/tombola_tests.rst diff --git a/11-iface-abc/tombolist.py b/13-iface-abc/tombolist.py similarity index 100% rename from 11-iface-abc/tombolist.py rename to 13-iface-abc/tombolist.py diff --git a/12-inheritance/README.rst b/14-inheritance/README.rst similarity index 100% rename from 12-inheritance/README.rst rename to 14-inheritance/README.rst diff --git a/12-inheritance/diamond.py b/14-inheritance/diamond.py similarity index 100% rename from 12-inheritance/diamond.py rename to 14-inheritance/diamond.py diff --git a/15-type-hints/README.asciidoc b/15-type-hints/README.asciidoc new file mode 100644 index 0000000..b1e64d1 --- /dev/null +++ b/15-type-hints/README.asciidoc @@ -0,0 +1 @@ +== Type Hints Distilled diff --git a/13-op-overloading/README.rst b/16-op-overloading/README.rst similarity index 100% rename from 13-op-overloading/README.rst rename to 16-op-overloading/README.rst diff --git a/13-op-overloading/bingo.py b/16-op-overloading/bingo.py similarity index 100% rename from 13-op-overloading/bingo.py rename to 16-op-overloading/bingo.py diff --git a/13-op-overloading/bingoaddable.py b/16-op-overloading/bingoaddable.py similarity index 100% rename from 13-op-overloading/bingoaddable.py rename to 16-op-overloading/bingoaddable.py diff --git a/13-op-overloading/tombola.py b/16-op-overloading/tombola.py similarity index 100% rename from 13-op-overloading/tombola.py rename to 16-op-overloading/tombola.py diff --git a/13-op-overloading/unary_plus_decimal.py b/16-op-overloading/unary_plus_decimal.py similarity index 100% rename from 13-op-overloading/unary_plus_decimal.py rename to 16-op-overloading/unary_plus_decimal.py diff --git a/13-op-overloading/vector2d_v3.py b/16-op-overloading/vector2d_v3.py similarity index 100% rename from 13-op-overloading/vector2d_v3.py rename to 16-op-overloading/vector2d_v3.py diff --git a/13-op-overloading/vector_py3_5.py b/16-op-overloading/vector_py3_5.py similarity index 100% rename from 13-op-overloading/vector_py3_5.py rename to 16-op-overloading/vector_py3_5.py diff --git a/13-op-overloading/vector_v6.py b/16-op-overloading/vector_v6.py similarity index 100% rename from 13-op-overloading/vector_v6.py rename to 16-op-overloading/vector_v6.py diff --git a/13-op-overloading/vector_v7.py b/16-op-overloading/vector_v7.py similarity index 100% rename from 13-op-overloading/vector_v7.py rename to 16-op-overloading/vector_v7.py diff --git a/13-op-overloading/vector_v8.py b/16-op-overloading/vector_v8.py similarity index 100% rename from 13-op-overloading/vector_v8.py rename to 16-op-overloading/vector_v8.py diff --git a/14-it-generator/README.rst b/17-it-generator/README.rst similarity index 100% rename from 14-it-generator/README.rst rename to 17-it-generator/README.rst diff --git a/14-it-generator/aritprog.rst b/17-it-generator/aritprog.rst similarity index 100% rename from 14-it-generator/aritprog.rst rename to 17-it-generator/aritprog.rst diff --git a/14-it-generator/aritprog_float_error.py b/17-it-generator/aritprog_float_error.py similarity index 100% rename from 14-it-generator/aritprog_float_error.py rename to 17-it-generator/aritprog_float_error.py diff --git a/14-it-generator/aritprog_runner.py b/17-it-generator/aritprog_runner.py similarity index 100% rename from 14-it-generator/aritprog_runner.py rename to 17-it-generator/aritprog_runner.py diff --git a/14-it-generator/aritprog_v0.py b/17-it-generator/aritprog_v0.py similarity index 100% rename from 14-it-generator/aritprog_v0.py rename to 17-it-generator/aritprog_v0.py diff --git a/14-it-generator/aritprog_v1.py b/17-it-generator/aritprog_v1.py similarity index 100% rename from 14-it-generator/aritprog_v1.py rename to 17-it-generator/aritprog_v1.py diff --git a/14-it-generator/aritprog_v2.py b/17-it-generator/aritprog_v2.py similarity index 100% rename from 14-it-generator/aritprog_v2.py rename to 17-it-generator/aritprog_v2.py diff --git a/14-it-generator/aritprog_v3.py b/17-it-generator/aritprog_v3.py similarity index 100% rename from 14-it-generator/aritprog_v3.py rename to 17-it-generator/aritprog_v3.py diff --git a/14-it-generator/fibo_by_hand.py b/17-it-generator/fibo_by_hand.py similarity index 100% rename from 14-it-generator/fibo_by_hand.py rename to 17-it-generator/fibo_by_hand.py diff --git a/14-it-generator/isis2json/README.rst b/17-it-generator/isis2json/README.rst similarity index 100% rename from 14-it-generator/isis2json/README.rst rename to 17-it-generator/isis2json/README.rst diff --git a/14-it-generator/isis2json/isis2json.py b/17-it-generator/isis2json/isis2json.py similarity index 100% rename from 14-it-generator/isis2json/isis2json.py rename to 17-it-generator/isis2json/isis2json.py diff --git a/14-it-generator/isis2json/iso2709.py b/17-it-generator/isis2json/iso2709.py similarity index 100% rename from 14-it-generator/isis2json/iso2709.py rename to 17-it-generator/isis2json/iso2709.py diff --git a/14-it-generator/isis2json/subfield.py b/17-it-generator/isis2json/subfield.py similarity index 100% rename from 14-it-generator/isis2json/subfield.py rename to 17-it-generator/isis2json/subfield.py diff --git a/14-it-generator/sentence.py b/17-it-generator/sentence.py similarity index 100% rename from 14-it-generator/sentence.py rename to 17-it-generator/sentence.py diff --git a/14-it-generator/sentence.rst b/17-it-generator/sentence.rst similarity index 100% rename from 14-it-generator/sentence.rst rename to 17-it-generator/sentence.rst diff --git a/14-it-generator/sentence_gen.py b/17-it-generator/sentence_gen.py similarity index 100% rename from 14-it-generator/sentence_gen.py rename to 17-it-generator/sentence_gen.py diff --git a/14-it-generator/sentence_gen2.py b/17-it-generator/sentence_gen2.py similarity index 100% rename from 14-it-generator/sentence_gen2.py rename to 17-it-generator/sentence_gen2.py diff --git a/14-it-generator/sentence_genexp.py b/17-it-generator/sentence_genexp.py similarity index 100% rename from 14-it-generator/sentence_genexp.py rename to 17-it-generator/sentence_genexp.py diff --git a/14-it-generator/sentence_iter.py b/17-it-generator/sentence_iter.py similarity index 100% rename from 14-it-generator/sentence_iter.py rename to 17-it-generator/sentence_iter.py diff --git a/14-it-generator/sentence_iter2.py b/17-it-generator/sentence_iter2.py similarity index 100% rename from 14-it-generator/sentence_iter2.py rename to 17-it-generator/sentence_iter2.py diff --git a/14-it-generator/sentence_runner.py b/17-it-generator/sentence_runner.py similarity index 100% rename from 14-it-generator/sentence_runner.py rename to 17-it-generator/sentence_runner.py diff --git a/14-it-generator/yield_delegate_fail.py b/17-it-generator/yield_delegate_fail.py similarity index 100% rename from 14-it-generator/yield_delegate_fail.py rename to 17-it-generator/yield_delegate_fail.py diff --git a/14-it-generator/yield_delegate_fix.py b/17-it-generator/yield_delegate_fix.py similarity index 100% rename from 14-it-generator/yield_delegate_fix.py rename to 17-it-generator/yield_delegate_fix.py diff --git a/15-context-mngr/README.rst b/18-context-mngr/README.rst similarity index 100% rename from 15-context-mngr/README.rst rename to 18-context-mngr/README.rst diff --git a/15-context-mngr/mirror.py b/18-context-mngr/mirror.py similarity index 100% rename from 15-context-mngr/mirror.py rename to 18-context-mngr/mirror.py diff --git a/15-context-mngr/mirror_gen.py b/18-context-mngr/mirror_gen.py similarity index 100% rename from 15-context-mngr/mirror_gen.py rename to 18-context-mngr/mirror_gen.py diff --git a/15-context-mngr/mirror_gen_exc.py b/18-context-mngr/mirror_gen_exc.py similarity index 100% rename from 15-context-mngr/mirror_gen_exc.py rename to 18-context-mngr/mirror_gen_exc.py diff --git a/16-coroutine/README.rst b/19-coroutine/README.rst similarity index 100% rename from 16-coroutine/README.rst rename to 19-coroutine/README.rst diff --git a/16-coroutine/coro_exc_demo.py b/19-coroutine/coro_exc_demo.py similarity index 100% rename from 16-coroutine/coro_exc_demo.py rename to 19-coroutine/coro_exc_demo.py diff --git a/16-coroutine/coro_finally_demo.py b/19-coroutine/coro_finally_demo.py similarity index 100% rename from 16-coroutine/coro_finally_demo.py rename to 19-coroutine/coro_finally_demo.py diff --git a/16-coroutine/coroaverager0.py b/19-coroutine/coroaverager0.py similarity index 100% rename from 16-coroutine/coroaverager0.py rename to 19-coroutine/coroaverager0.py diff --git a/16-coroutine/coroaverager1.py b/19-coroutine/coroaverager1.py similarity index 100% rename from 16-coroutine/coroaverager1.py rename to 19-coroutine/coroaverager1.py diff --git a/16-coroutine/coroaverager2.py b/19-coroutine/coroaverager2.py similarity index 100% rename from 16-coroutine/coroaverager2.py rename to 19-coroutine/coroaverager2.py diff --git a/16-coroutine/coroaverager3.py b/19-coroutine/coroaverager3.py similarity index 100% rename from 16-coroutine/coroaverager3.py rename to 19-coroutine/coroaverager3.py diff --git a/16-coroutine/coroutil.py b/19-coroutine/coroutil.py similarity index 100% rename from 16-coroutine/coroutil.py rename to 19-coroutine/coroutil.py diff --git a/16-coroutine/taxi_sim.py b/19-coroutine/taxi_sim.py similarity index 100% rename from 16-coroutine/taxi_sim.py rename to 19-coroutine/taxi_sim.py diff --git a/16-coroutine/taxi_sim0.py b/19-coroutine/taxi_sim0.py similarity index 100% rename from 16-coroutine/taxi_sim0.py rename to 19-coroutine/taxi_sim0.py diff --git a/16-coroutine/taxi_sim_delay.py b/19-coroutine/taxi_sim_delay.py similarity index 100% rename from 16-coroutine/taxi_sim_delay.py rename to 19-coroutine/taxi_sim_delay.py diff --git a/16-coroutine/yield_from_expansion.py b/19-coroutine/yield_from_expansion.py similarity index 100% rename from 16-coroutine/yield_from_expansion.py rename to 19-coroutine/yield_from_expansion.py diff --git a/16-coroutine/yield_from_expansion_simplified.py b/19-coroutine/yield_from_expansion_simplified.py similarity index 100% rename from 16-coroutine/yield_from_expansion_simplified.py rename to 19-coroutine/yield_from_expansion_simplified.py diff --git a/17-futures/README.rst b/20-futures/README.rst similarity index 100% rename from 17-futures/README.rst rename to 20-futures/README.rst diff --git a/17-futures/countries/README.rst b/20-futures/countries/README.rst similarity index 100% rename from 17-futures/countries/README.rst rename to 20-futures/countries/README.rst diff --git a/17-futures/countries/country_codes.txt b/20-futures/countries/country_codes.txt similarity index 100% rename from 17-futures/countries/country_codes.txt rename to 20-futures/countries/country_codes.txt diff --git a/17-futures/countries/flags.py b/20-futures/countries/flags.py similarity index 100% rename from 17-futures/countries/flags.py rename to 20-futures/countries/flags.py diff --git a/17-futures/countries/flags.zip b/20-futures/countries/flags.zip similarity index 100% rename from 17-futures/countries/flags.zip rename to 20-futures/countries/flags.zip diff --git a/17-futures/countries/flags2_asyncio.py b/20-futures/countries/flags2_asyncio.py similarity index 100% rename from 17-futures/countries/flags2_asyncio.py rename to 20-futures/countries/flags2_asyncio.py diff --git a/17-futures/countries/flags2_asyncio_executor.py b/20-futures/countries/flags2_asyncio_executor.py similarity index 100% rename from 17-futures/countries/flags2_asyncio_executor.py rename to 20-futures/countries/flags2_asyncio_executor.py diff --git a/17-futures/countries/flags2_await.py b/20-futures/countries/flags2_await.py similarity index 100% rename from 17-futures/countries/flags2_await.py rename to 20-futures/countries/flags2_await.py diff --git a/17-futures/countries/flags2_common.py b/20-futures/countries/flags2_common.py similarity index 100% rename from 17-futures/countries/flags2_common.py rename to 20-futures/countries/flags2_common.py diff --git a/17-futures/countries/flags2_sequential.py b/20-futures/countries/flags2_sequential.py similarity index 100% rename from 17-futures/countries/flags2_sequential.py rename to 20-futures/countries/flags2_sequential.py diff --git a/17-futures/countries/flags2_threadpool.py b/20-futures/countries/flags2_threadpool.py similarity index 100% rename from 17-futures/countries/flags2_threadpool.py rename to 20-futures/countries/flags2_threadpool.py diff --git a/17-futures/countries/flags3_asyncio.py b/20-futures/countries/flags3_asyncio.py similarity index 100% rename from 17-futures/countries/flags3_asyncio.py rename to 20-futures/countries/flags3_asyncio.py diff --git a/17-futures/countries/flags3_threadpool.py b/20-futures/countries/flags3_threadpool.py similarity index 100% rename from 17-futures/countries/flags3_threadpool.py rename to 20-futures/countries/flags3_threadpool.py diff --git a/17-futures/countries/flags_asyncio.py b/20-futures/countries/flags_asyncio.py similarity index 100% rename from 17-futures/countries/flags_asyncio.py rename to 20-futures/countries/flags_asyncio.py diff --git a/17-futures/countries/flags_await.py b/20-futures/countries/flags_await.py similarity index 100% rename from 17-futures/countries/flags_await.py rename to 20-futures/countries/flags_await.py diff --git a/17-futures/countries/flags_threadpool.py b/20-futures/countries/flags_threadpool.py similarity index 100% rename from 17-futures/countries/flags_threadpool.py rename to 20-futures/countries/flags_threadpool.py diff --git a/17-futures/countries/flags_threadpool_ac.py b/20-futures/countries/flags_threadpool_ac.py similarity index 100% rename from 17-futures/countries/flags_threadpool_ac.py rename to 20-futures/countries/flags_threadpool_ac.py diff --git a/17-futures/countries/requirements.txt b/20-futures/countries/requirements.txt similarity index 100% rename from 17-futures/countries/requirements.txt rename to 20-futures/countries/requirements.txt diff --git a/17-futures/countries/vaurien_delay.sh b/20-futures/countries/vaurien_delay.sh similarity index 100% rename from 17-futures/countries/vaurien_delay.sh rename to 20-futures/countries/vaurien_delay.sh diff --git a/17-futures/countries/vaurien_error_delay.sh b/20-futures/countries/vaurien_error_delay.sh similarity index 100% rename from 17-futures/countries/vaurien_error_delay.sh rename to 20-futures/countries/vaurien_error_delay.sh diff --git a/17-futures/crypto/arcfour-timings.txt b/20-futures/crypto/arcfour-timings.txt similarity index 100% rename from 17-futures/crypto/arcfour-timings.txt rename to 20-futures/crypto/arcfour-timings.txt diff --git a/17-futures/crypto/arcfour.py b/20-futures/crypto/arcfour.py similarity index 100% rename from 17-futures/crypto/arcfour.py rename to 20-futures/crypto/arcfour.py diff --git a/17-futures/crypto/arcfour_futures.py b/20-futures/crypto/arcfour_futures.py similarity index 100% rename from 17-futures/crypto/arcfour_futures.py rename to 20-futures/crypto/arcfour_futures.py diff --git a/17-futures/crypto/arcfour_test.py b/20-futures/crypto/arcfour_test.py similarity index 100% rename from 17-futures/crypto/arcfour_test.py rename to 20-futures/crypto/arcfour_test.py diff --git a/17-futures/crypto/sha-timings.txt b/20-futures/crypto/sha-timings.txt similarity index 100% rename from 17-futures/crypto/sha-timings.txt rename to 20-futures/crypto/sha-timings.txt diff --git a/17-futures/crypto/sha_futures.py b/20-futures/crypto/sha_futures.py similarity index 100% rename from 17-futures/crypto/sha_futures.py rename to 20-futures/crypto/sha_futures.py diff --git a/17-futures/demo_executor_map.py b/20-futures/demo_executor_map.py similarity index 100% rename from 17-futures/demo_executor_map.py rename to 20-futures/demo_executor_map.py diff --git a/18-asyncio/README.rst b/21-asyncio/README.rst similarity index 100% rename from 18-asyncio/README.rst rename to 21-asyncio/README.rst diff --git a/18-asyncio/charfinder/charfinder.py b/21-asyncio/charfinder/charfinder.py similarity index 100% rename from 18-asyncio/charfinder/charfinder.py rename to 21-asyncio/charfinder/charfinder.py diff --git a/18-asyncio/charfinder/http_charfinder.html b/21-asyncio/charfinder/http_charfinder.html similarity index 100% rename from 18-asyncio/charfinder/http_charfinder.html rename to 21-asyncio/charfinder/http_charfinder.html diff --git a/18-asyncio/charfinder/http_charfinder.py b/21-asyncio/charfinder/http_charfinder.py similarity index 100% rename from 18-asyncio/charfinder/http_charfinder.py rename to 21-asyncio/charfinder/http_charfinder.py diff --git a/18-asyncio/charfinder/requirements.txt b/21-asyncio/charfinder/requirements.txt similarity index 100% rename from 18-asyncio/charfinder/requirements.txt rename to 21-asyncio/charfinder/requirements.txt diff --git a/18-asyncio/charfinder/tcp_charfinder.py b/21-asyncio/charfinder/tcp_charfinder.py similarity index 100% rename from 18-asyncio/charfinder/tcp_charfinder.py rename to 21-asyncio/charfinder/tcp_charfinder.py diff --git a/18-asyncio/charfinder/test_charfinder.py b/21-asyncio/charfinder/test_charfinder.py similarity index 100% rename from 18-asyncio/charfinder/test_charfinder.py rename to 21-asyncio/charfinder/test_charfinder.py diff --git a/18-asyncio/countries/README.rst b/21-asyncio/countries/README.rst similarity index 100% rename from 18-asyncio/countries/README.rst rename to 21-asyncio/countries/README.rst diff --git a/18-asyncio/spinner_asyncio.py b/21-asyncio/spinner_asyncio.py similarity index 100% rename from 18-asyncio/spinner_asyncio.py rename to 21-asyncio/spinner_asyncio.py diff --git a/18-asyncio/spinner_await.py b/21-asyncio/spinner_await.py similarity index 100% rename from 18-asyncio/spinner_await.py rename to 21-asyncio/spinner_await.py diff --git a/18-asyncio/spinner_curio.py b/21-asyncio/spinner_curio.py similarity index 100% rename from 18-asyncio/spinner_curio.py rename to 21-asyncio/spinner_curio.py diff --git a/18-asyncio/spinner_thread.py b/21-asyncio/spinner_thread.py similarity index 100% rename from 18-asyncio/spinner_thread.py rename to 21-asyncio/spinner_thread.py diff --git a/19-dyn-attr-prop/README.rst b/22-dyn-attr-prop/README.rst similarity index 100% rename from 19-dyn-attr-prop/README.rst rename to 22-dyn-attr-prop/README.rst diff --git a/19-dyn-attr-prop/blackknight.py b/22-dyn-attr-prop/blackknight.py similarity index 100% rename from 19-dyn-attr-prop/blackknight.py rename to 22-dyn-attr-prop/blackknight.py diff --git a/19-dyn-attr-prop/bulkfood/bulkfood_v1.py b/22-dyn-attr-prop/bulkfood/bulkfood_v1.py similarity index 100% rename from 19-dyn-attr-prop/bulkfood/bulkfood_v1.py rename to 22-dyn-attr-prop/bulkfood/bulkfood_v1.py diff --git a/19-dyn-attr-prop/bulkfood/bulkfood_v2.py b/22-dyn-attr-prop/bulkfood/bulkfood_v2.py similarity index 100% rename from 19-dyn-attr-prop/bulkfood/bulkfood_v2.py rename to 22-dyn-attr-prop/bulkfood/bulkfood_v2.py diff --git a/19-dyn-attr-prop/bulkfood/bulkfood_v2b.py b/22-dyn-attr-prop/bulkfood/bulkfood_v2b.py similarity index 100% rename from 19-dyn-attr-prop/bulkfood/bulkfood_v2b.py rename to 22-dyn-attr-prop/bulkfood/bulkfood_v2b.py diff --git a/19-dyn-attr-prop/bulkfood/bulkfood_v2prop.py b/22-dyn-attr-prop/bulkfood/bulkfood_v2prop.py similarity index 100% rename from 19-dyn-attr-prop/bulkfood/bulkfood_v2prop.py rename to 22-dyn-attr-prop/bulkfood/bulkfood_v2prop.py diff --git a/19-dyn-attr-prop/doc_property.py b/22-dyn-attr-prop/doc_property.py similarity index 100% rename from 19-dyn-attr-prop/doc_property.py rename to 22-dyn-attr-prop/doc_property.py diff --git a/19-dyn-attr-prop/oscon/data/osconfeed.json b/22-dyn-attr-prop/oscon/data/osconfeed.json similarity index 100% rename from 19-dyn-attr-prop/oscon/data/osconfeed.json rename to 22-dyn-attr-prop/oscon/data/osconfeed.json diff --git a/19-dyn-attr-prop/oscon/demo_schedule2.py b/22-dyn-attr-prop/oscon/demo_schedule2.py similarity index 100% rename from 19-dyn-attr-prop/oscon/demo_schedule2.py rename to 22-dyn-attr-prop/oscon/demo_schedule2.py diff --git a/19-dyn-attr-prop/oscon/explore0.py b/22-dyn-attr-prop/oscon/explore0.py similarity index 100% rename from 19-dyn-attr-prop/oscon/explore0.py rename to 22-dyn-attr-prop/oscon/explore0.py diff --git a/19-dyn-attr-prop/oscon/explore1.py b/22-dyn-attr-prop/oscon/explore1.py similarity index 100% rename from 19-dyn-attr-prop/oscon/explore1.py rename to 22-dyn-attr-prop/oscon/explore1.py diff --git a/19-dyn-attr-prop/oscon/explore2.py b/22-dyn-attr-prop/oscon/explore2.py similarity index 100% rename from 19-dyn-attr-prop/oscon/explore2.py rename to 22-dyn-attr-prop/oscon/explore2.py diff --git a/19-dyn-attr-prop/oscon/osconfeed-sample.json b/22-dyn-attr-prop/oscon/osconfeed-sample.json similarity index 100% rename from 19-dyn-attr-prop/oscon/osconfeed-sample.json rename to 22-dyn-attr-prop/oscon/osconfeed-sample.json diff --git a/19-dyn-attr-prop/oscon/osconfeed.py b/22-dyn-attr-prop/oscon/osconfeed.py similarity index 100% rename from 19-dyn-attr-prop/oscon/osconfeed.py rename to 22-dyn-attr-prop/oscon/osconfeed.py diff --git a/19-dyn-attr-prop/oscon/schedule1.py b/22-dyn-attr-prop/oscon/schedule1.py similarity index 100% rename from 19-dyn-attr-prop/oscon/schedule1.py rename to 22-dyn-attr-prop/oscon/schedule1.py diff --git a/19-dyn-attr-prop/oscon/schedule2.py b/22-dyn-attr-prop/oscon/schedule2.py similarity index 100% rename from 19-dyn-attr-prop/oscon/schedule2.py rename to 22-dyn-attr-prop/oscon/schedule2.py diff --git a/19-dyn-attr-prop/oscon/test_schedule1.py b/22-dyn-attr-prop/oscon/test_schedule1.py similarity index 100% rename from 19-dyn-attr-prop/oscon/test_schedule1.py rename to 22-dyn-attr-prop/oscon/test_schedule1.py diff --git a/19-dyn-attr-prop/oscon/test_schedule2.py b/22-dyn-attr-prop/oscon/test_schedule2.py similarity index 100% rename from 19-dyn-attr-prop/oscon/test_schedule2.py rename to 22-dyn-attr-prop/oscon/test_schedule2.py diff --git a/19-dyn-attr-prop/pseudo_construction.py b/22-dyn-attr-prop/pseudo_construction.py similarity index 100% rename from 19-dyn-attr-prop/pseudo_construction.py rename to 22-dyn-attr-prop/pseudo_construction.py diff --git a/20-descriptor/README.rst b/23-descriptor/README.rst similarity index 100% rename from 20-descriptor/README.rst rename to 23-descriptor/README.rst diff --git a/20-descriptor/bulkfood/bulkfood_v3.py b/23-descriptor/bulkfood/bulkfood_v3.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v3.py rename to 23-descriptor/bulkfood/bulkfood_v3.py diff --git a/20-descriptor/bulkfood/bulkfood_v4.py b/23-descriptor/bulkfood/bulkfood_v4.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v4.py rename to 23-descriptor/bulkfood/bulkfood_v4.py diff --git a/20-descriptor/bulkfood/bulkfood_v4b.py b/23-descriptor/bulkfood/bulkfood_v4b.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v4b.py rename to 23-descriptor/bulkfood/bulkfood_v4b.py diff --git a/20-descriptor/bulkfood/bulkfood_v4c.py b/23-descriptor/bulkfood/bulkfood_v4c.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v4c.py rename to 23-descriptor/bulkfood/bulkfood_v4c.py diff --git a/20-descriptor/bulkfood/bulkfood_v4prop.py b/23-descriptor/bulkfood/bulkfood_v4prop.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v4prop.py rename to 23-descriptor/bulkfood/bulkfood_v4prop.py diff --git a/20-descriptor/bulkfood/bulkfood_v5.py b/23-descriptor/bulkfood/bulkfood_v5.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v5.py rename to 23-descriptor/bulkfood/bulkfood_v5.py diff --git a/20-descriptor/bulkfood/bulkfood_v5_check.py b/23-descriptor/bulkfood/bulkfood_v5_check.py similarity index 100% rename from 20-descriptor/bulkfood/bulkfood_v5_check.py rename to 23-descriptor/bulkfood/bulkfood_v5_check.py diff --git a/20-descriptor/bulkfood/model_v4c.py b/23-descriptor/bulkfood/model_v4c.py similarity index 100% rename from 20-descriptor/bulkfood/model_v4c.py rename to 23-descriptor/bulkfood/model_v4c.py diff --git a/20-descriptor/bulkfood/model_v5.py b/23-descriptor/bulkfood/model_v5.py similarity index 100% rename from 20-descriptor/bulkfood/model_v5.py rename to 23-descriptor/bulkfood/model_v5.py diff --git a/20-descriptor/bulkfood/model_v5_check.py b/23-descriptor/bulkfood/model_v5_check.py similarity index 100% rename from 20-descriptor/bulkfood/model_v5_check.py rename to 23-descriptor/bulkfood/model_v5_check.py diff --git a/20-descriptor/descriptorkinds.py b/23-descriptor/descriptorkinds.py similarity index 100% rename from 20-descriptor/descriptorkinds.py rename to 23-descriptor/descriptorkinds.py diff --git a/20-descriptor/descriptorkinds_dump.py b/23-descriptor/descriptorkinds_dump.py similarity index 100% rename from 20-descriptor/descriptorkinds_dump.py rename to 23-descriptor/descriptorkinds_dump.py diff --git a/20-descriptor/method_is_descriptor.py b/23-descriptor/method_is_descriptor.py similarity index 100% rename from 20-descriptor/method_is_descriptor.py rename to 23-descriptor/method_is_descriptor.py diff --git a/21-class-metaprog/README.rst b/24-class-metaprog/README.rst similarity index 100% rename from 21-class-metaprog/README.rst rename to 24-class-metaprog/README.rst diff --git a/21-class-metaprog/bulkfood/bulkfood_v6.py b/24-class-metaprog/bulkfood/bulkfood_v6.py similarity index 100% rename from 21-class-metaprog/bulkfood/bulkfood_v6.py rename to 24-class-metaprog/bulkfood/bulkfood_v6.py diff --git a/21-class-metaprog/bulkfood/bulkfood_v7.py b/24-class-metaprog/bulkfood/bulkfood_v7.py similarity index 100% rename from 21-class-metaprog/bulkfood/bulkfood_v7.py rename to 24-class-metaprog/bulkfood/bulkfood_v7.py diff --git a/21-class-metaprog/bulkfood/bulkfood_v8.py b/24-class-metaprog/bulkfood/bulkfood_v8.py similarity index 100% rename from 21-class-metaprog/bulkfood/bulkfood_v8.py rename to 24-class-metaprog/bulkfood/bulkfood_v8.py diff --git a/21-class-metaprog/bulkfood/model_v6.py b/24-class-metaprog/bulkfood/model_v6.py similarity index 100% rename from 21-class-metaprog/bulkfood/model_v6.py rename to 24-class-metaprog/bulkfood/model_v6.py diff --git a/21-class-metaprog/bulkfood/model_v7.py b/24-class-metaprog/bulkfood/model_v7.py similarity index 100% rename from 21-class-metaprog/bulkfood/model_v7.py rename to 24-class-metaprog/bulkfood/model_v7.py diff --git a/21-class-metaprog/bulkfood/model_v8.py b/24-class-metaprog/bulkfood/model_v8.py similarity index 100% rename from 21-class-metaprog/bulkfood/model_v8.py rename to 24-class-metaprog/bulkfood/model_v8.py diff --git a/21-class-metaprog/evalsupport.py b/24-class-metaprog/evalsupport.py similarity index 100% rename from 21-class-metaprog/evalsupport.py rename to 24-class-metaprog/evalsupport.py diff --git a/21-class-metaprog/evaltime.py b/24-class-metaprog/evaltime.py similarity index 100% rename from 21-class-metaprog/evaltime.py rename to 24-class-metaprog/evaltime.py diff --git a/21-class-metaprog/evaltime_meta.py b/24-class-metaprog/evaltime_meta.py similarity index 100% rename from 21-class-metaprog/evaltime_meta.py rename to 24-class-metaprog/evaltime_meta.py diff --git a/21-class-metaprog/factories.py b/24-class-metaprog/factories.py similarity index 100% rename from 21-class-metaprog/factories.py rename to 24-class-metaprog/factories.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..593abbe --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# Fluent Python 2e example code + +Example code for the book **Fluent Python, 2nd edition** by Luciano Ramalho (O'Reilly, 2020). + +> **BEWARE**: This is a work in progress, like the book itself. +> +> * Code here may change and disappear without warning. +> +> * Major reorganizations may happen at any time. +> +> * No promises. No guarantees. Use at own risk. + +## Chapter Map + +Part|Chapter|Chapter Title|Directory|1st ed. Directory +---|---:|---|---|--- +I – Prologue|1|The Python Data Model|[01-data-model](01-data-model)|01-data-model +II – Data Structures|2|An Array of Sequences|[02-array-seq](02-array-seq)|02-array-seq + |3|Dictionaries and Sets|[03-dict-set](03-dict-set)|03-dict-set + |4|Text versus Bytes|[04-text-byte](04-text-byte)|04-text-byte + |5|Record-like Data Structures 🆕|[05-record-like](05-record-like)| +III – Functions as Objects|6|First-Class Funcions|[06-1class-func](06-1class-func)|05-1class-func + |7|Design Patterns with First-Class Functions|[07-dp-1class-func](07-dp-1class-func)|06-dp-1class-func + |8|Function Decorators and Closures|[08-closure-deco](08-closure-deco)|07-closure-deco + |9|Type Hints in Function Definitions 🆕|[09-def-type-hints](09-def-type-hints)| +IV – Object-Oriented Idioms|10|Object References, Mutability, and Recycling|[10-obj-ref](10-obj-ref)|08-obj-ref + |11|A Pythonic Object|[11-pythonic-obj](11-pythonic-obj)|09-pythonic-obj + |12|Sequence Hacking, Hashing, and Slicing|[12-seq-hacking](12-seq-hacking)|10-seq-hacking + |13|Interfaces: From Protocols to ABCs|[13-iface-abc](13-iface-abc)|11-iface-abc + |14|Inheritance: For Good or For Worse|[14-inheritance](14-inheritance)|12-inheritance + |15|Type Hints Distilled 🆕|[15-type-hints](15-type-hints)| + |16|Operator Overloading: Doing It Right|[16-op-overloading](16-op-overloading)|13-op-overloading +V – Control Flow|17|Iterables, Iterators, and Generators|[17-it-generator](17-it-generator)|14-it-generator + |18|Context Managers and else Blocks|[18-context-mngr](18-context-mngr)|15-context-mngr + |19|Coroutines|[19-coroutine](19-coroutine)|16-coroutine + |20|Concurrency with Futures|[20-futures](20-futures)|17-futures + |21|Concurrency with asyncio|[21-asyncio](21-asyncio)|18-asyncio +VI – Metaprogramming|22|Dynamic Attributes and Properties|[22-dyn-attr-prop](22-dyn-attr-prop)|19-dyn-attr-prop + |23|Attribute Descriptors|[23-descriptor](23-descriptor)|20-descriptor + |24|Class Metapgrogramming|[24-class-metaprog](24-class-metaprog)|21-class-metaprog + +> New chapters are marked with 🆕 diff --git a/README.rst b/README.rst deleted file mode 100644 index 67e5aa1..0000000 --- a/README.rst +++ /dev/null @@ -1,12 +0,0 @@ -Fluent Python 2e example code -============================= - -Example code for the book **Fluent Python, 2nd edition** by Luciano Ramalho (O'Reilly, 2020). - - **BEWARE**: This is a work in progress, like the book itself. - -* Code here may change and disappear without warning. - -* A major reorganizations may happen at any time. - -* No promises. No guarantees. Use at own risk. diff --git a/chapter-map.ods b/chapter-map.ods new file mode 100644 index 0000000..f277ba2 Binary files /dev/null and b/chapter-map.ods differ