From 195f93e9a5484aab148d714b26f22d31c270e87f Mon Sep 17 00:00:00 2001 From: ulises-jeremias Date: Tue, 26 May 2026 11:00:00 -0300 Subject: [PATCH] refactor: move modules into modules/ subdirectory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aligns this repo with the convention already used by sister labs (nan-ai-engineering-labs, nan-data-engineering-labs): all numbered module directories now live under modules/ instead of at the repo root. Changes: - git mv 16 module dirs (01_python_fundamentals .. 16_modern_security) into modules/, preserving full git history via rename tracking - scripts: introduce modules/ awareness in validate_all_modules.py, audit_nan_modules.py, validate_nan_language.py, link_check.py, progress.py, generate_structure.py, run_topic_tests.py — CLI args remain bare (--module 11_modern_tooling_2026), prepended internally - run_topic_tests.py accepts both bare and modules/-prefixed paths - README.md: 32 link updates to point at modules//... - Pre-existing X1 failures in modules 12 (fastapi) and 15 (data science) are unchanged by this refactor (verified against main) --- README.md | 64 +++++++++--------- .../01_python_fundamentals}/README.md | 0 .../advanced_strings/README.md | 0 .../examples/example_basic.py | 0 .../advanced_strings/exercise/exercise_01.py | 0 .../advanced_strings/references/links.md | 0 .../advanced_strings/tests/test_basic.py | 0 .../basic_debugging_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../basic_error_handling/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../basic_error_handling/references/links.md | 0 .../basic_error_handling/tests/test_basic.py | 0 .../basic_functions/README.md | 0 .../basic_functions/examples/example_basic.py | 0 .../basic_functions/exercise/exercise_01.py | 0 .../basic_functions/references/links.md | 0 .../basic_functions/tests/test_basic.py | 0 .../comprehensions/README.md | 0 .../comprehensions/examples/example_basic.py | 0 .../comprehensions/exercise/exercise_01.py | 0 .../comprehensions/references/links.md | 0 .../comprehensions/tests/test_basic.py | 0 .../control_structures/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../control_structures/references/links.md | 0 .../control_structures/tests/test_basic.py | 0 .../dictionaries_sets/README.md | 0 .../examples/example_basic.py | 0 .../dictionaries_sets/exercise/exercise_01.py | 0 .../dictionaries_sets/references/links.md | 0 .../dictionaries_sets/tests/test_basic.py | 0 .../input_output_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../input_output_optional/references/links.md | 0 .../input_output_optional/tests/test_basic.py | 0 .../lists_tuples/README.md | 0 .../lists_tuples/examples/example_basic.py | 0 .../lists_tuples/exercise/exercise_01.py | 0 .../lists_tuples/references/links.md | 0 .../lists_tuples/tests/test_basic.py | 0 .../module_imports/README.md | 0 .../module_imports/examples/example_basic.py | 0 .../module_imports/exercise/exercise_01.py | 0 .../module_imports/references/links.md | 0 .../module_imports/tests/test_basic.py | 0 .../operators_expressions_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../variables_data_types_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../02_intermediate_python}/README.md | 0 .../advanced_functions/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../advanced_functions/references/links.md | 0 .../advanced_functions/tests/test_basic.py | 0 .../basic_context_managers/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../basic_decorators/README.md | 0 .../examples/example_basic.py | 0 .../basic_decorators/exercise/exercise_01.py | 0 .../basic_decorators/references/links.md | 0 .../basic_decorators/tests/test_basic.py | 0 .../basic_iterators/README.md | 0 .../basic_iterators/examples/example_basic.py | 0 .../basic_iterators/exercise/exercise_01.py | 0 .../basic_iterators/references/links.md | 0 .../basic_iterators/tests/test_basic.py | 0 .../closures/README.md | 0 .../closures/examples/example_basic.py | 0 .../closures/exercise/exercise_01.py | 0 .../closures/references/links.md | 0 .../closures/tests/test_basic.py | 0 .../collections_module/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../collections_module/references/links.md | 0 .../collections_module/tests/test_basic.py | 0 .../csv_json/README.md | 0 .../csv_json/examples/example_basic.py | 0 .../csv_json/exercise/exercise_01.py | 0 .../csv_json/references/links.md | 0 .../csv_json/tests/test_basic.py | 0 .../datetime_time/README.md | 0 .../datetime_time/examples/example_basic.py | 0 .../datetime_time/exercise/exercise_01.py | 0 .../datetime_time/references/links.md | 0 .../datetime_time/tests/test_basic.py | 0 .../exception_handling/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../exception_handling/references/links.md | 0 .../exception_handling/tests/test_basic.py | 0 .../generators/README.md | 0 .../generators/examples/example_basic.py | 0 .../generators/exercise/exercise_01.py | 0 .../generators/references/links.md | 0 .../generators/tests/test_basic.py | 0 .../itertools/README.md | 0 .../itertools/examples/example_basic.py | 0 .../itertools/exercise/exercise_01.py | 0 .../itertools/references/links.md | 0 .../itertools/tests/test_basic.py | 0 .../modules_packages/README.md | 0 .../examples/example_basic.py | 0 .../modules_packages/exercise/exercise_01.py | 0 .../modules_packages/references/links.md | 0 .../modules_packages/tests/test_basic.py | 0 .../02_intermediate_python}/pathlib/README.md | 0 .../pathlib/examples/example_basic.py | 0 .../pathlib/exercise/exercise_01.py | 0 .../pathlib/references/links.md | 0 .../pathlib/tests/test_basic.py | 0 .../regex_optional/README.md | 0 .../regex_optional/examples/example_basic.py | 0 .../regex_optional/exercise/exercise_01.py | 0 .../regex_optional/references/links.md | 0 .../regex_optional/tests/test_basic.py | 0 .../text_file_handling/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../text_file_handling/references/links.md | 0 .../text_file_handling/tests/test_basic.py | 0 .../03_basic_intermediate_oop}/README.md | 0 .../attributes_methods/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../attributes_methods/references/links.md | 0 .../attributes_methods/tests/test_basic.py | 0 .../basic_descriptors/README.md | 0 .../examples/example_basic.py | 0 .../basic_descriptors/exercise/exercise_01.py | 0 .../basic_descriptors/references/links.md | 0 .../basic_descriptors/tests/test_basic.py | 0 .../basic_inheritance/README.md | 0 .../examples/example_basic.py | 0 .../basic_inheritance/exercise/exercise_01.py | 0 .../basic_inheritance/references/links.md | 0 .../basic_inheritance/tests/test_basic.py | 0 .../classes_objects/README.md | 0 .../classes_objects/examples/example_basic.py | 0 .../classes_objects/exercise/exercise_01.py | 0 .../classes_objects/references/links.md | 0 .../classes_objects/tests/test_basic.py | 0 .../composition_vs_inheritance/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../dataclasses_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../dataclasses_optional/references/links.md | 0 .../dataclasses_optional/tests/test_basic.py | 0 .../encapsulation/README.md | 0 .../encapsulation/examples/example_basic.py | 0 .../encapsulation/exercise/exercise_01.py | 0 .../encapsulation/references/links.md | 0 .../encapsulation/tests/test_basic.py | 0 .../init_self/README.md | 0 .../init_self/examples/example_basic.py | 0 .../init_self/exercise/exercise_01.py | 0 .../init_self/references/links.md | 0 .../init_self/tests/test_basic.py | 0 .../multiple_inheritance/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../multiple_inheritance/references/links.md | 0 .../multiple_inheritance/tests/test_basic.py | 0 .../polymorphism/README.md | 0 .../polymorphism/examples/example_basic.py | 0 .../polymorphism/exercise/exercise_01.py | 0 .../polymorphism/references/links.md | 0 .../polymorphism/tests/test_basic.py | 0 .../properties/README.md | 0 .../properties/examples/example_basic.py | 0 .../properties/exercise/exercise_01.py | 0 .../properties/references/links.md | 0 .../properties/tests/test_basic.py | 0 .../special_methods/README.md | 0 .../special_methods/examples/example_basic.py | 0 .../special_methods/exercise/exercise_01.py | 0 .../special_methods/references/links.md | 0 .../special_methods/tests/test_basic.py | 0 .../01_gil_history/README.md | 0 .../01_gil_history/examples/example_basic.py | 0 .../examples/gil_demonstration.py | 0 .../examples/gil_vs_multiprocessing.py | 0 .../exercise/advanced_exercise.py | 0 .../01_gil_history/exercise/basic_exercise.py | 0 .../01_gil_history/exercise/exercise_01.py | 0 .../exercise/intermediate_exercise.py | 0 .../01_gil_history/references/links.md | 0 .../01_gil_history/tests/test_advanced.py | 0 .../01_gil_history/tests/test_basic.py | 0 .../01_gil_history/tests/test_intermediate.py | 0 .../02_gil_limitations/README.md | 0 .../examples/example_basic.py | 0 .../examples/gil_contention_viz.py | 0 .../exercise/exercise_01.py | 0 .../02_gil_limitations/references/links.md | 0 .../02_gil_limitations/tests/test_basic.py | 0 .../03_pep_703_free_threading/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../04_free_threading_activation/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../05_gil_free_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../06_biased_reference_counting/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../07_gc_thread_safe/README.md | 0 .../examples/example_basic.py | 0 .../07_gc_thread_safe/exercise/exercise_01.py | 0 .../07_gc_thread_safe/references/links.md | 0 .../07_gc_thread_safe/tests/test_basic.py | 0 .../08_performance_benchmarks/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../09_c_extensions_compatibility/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../10_subinterpreters_intro/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../11_api_c_subinterpreters/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../12_api_python_subinterpreters/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../13_per_interpreter_gil/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../14_memory_isolation/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../14_memory_isolation/references/links.md | 0 .../14_memory_isolation/tests/test_basic.py | 0 .../15_communication_channels/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../16_atomic_operations/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../16_atomic_operations/references/links.md | 0 .../16_atomic_operations/tests/test_basic.py | 0 .../17_data_races/README.md | 0 .../17_data_races/examples/example_basic.py | 0 .../17_data_races/exercise/exercise_01.py | 0 .../17_data_races/references/links.md | 0 .../17_data_races/tests/test_basic.py | 0 .../18_locks_synchronization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../19_threading_local/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../19_threading_local/references/links.md | 0 .../19_threading_local/tests/test_basic.py | 0 .../20_thread_safe_structures/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../21_pyobject_structure/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../21_pyobject_structure/references/links.md | 0 .../21_pyobject_structure/tests/test_basic.py | 0 .../22_reference_counting/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../22_reference_counting/references/links.md | 0 .../22_reference_counting/tests/test_basic.py | 0 .../23_immortal_objects/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../23_immortal_objects/references/links.md | 0 .../23_immortal_objects/tests/test_basic.py | 0 .../24_caching_interning/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../24_caching_interning/references/links.md | 0 .../24_caching_interning/tests/test_basic.py | 0 .../25_memory_layout/README.md | 0 .../examples/example_basic.py | 0 .../25_memory_layout/exercise/exercise_01.py | 0 .../25_memory_layout/references/links.md | 0 .../25_memory_layout/tests/test_basic.py | 0 .../26_migration_strategies/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../27_testing_thread_safety/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../04_cpython_internals_advanced}/README.md | 0 .../create_templates.py | 0 .../05_modern_concurrency}/README.md | 0 .../actor_model/README.md | 0 .../actor_model/examples/example_basic.py | 0 .../actor_model/exercise/exercise_01.py | 0 .../actor_model/references/links.md | 0 .../actor_model/tests/test_basic.py | 0 .../aiohttp_httpx/README.md | 0 .../aiohttp_httpx/examples/example_basic.py | 0 .../aiohttp_httpx/exercise/exercise_01.py | 0 .../aiohttp_httpx/references/links.md | 0 .../aiohttp_httpx/tests/test_basic.py | 0 .../asyncio_debugging/README.md | 0 .../examples/example_basic.py | 0 .../asyncio_debugging/exercise/exercise_01.py | 0 .../asyncio_debugging/references/links.md | 0 .../asyncio_debugging/tests/test_basic.py | 0 .../asyncio_fundamentals/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../asyncio_fundamentals/references/links.md | 0 .../asyncio_fundamentals/tests/test_basic.py | 0 .../asyncio_patterns/README.md | 0 .../examples/example_basic.py | 0 .../asyncio_patterns/exercise/exercise_01.py | 0 .../asyncio_patterns/references/links.md | 0 .../asyncio_patterns/tests/test_basic.py | 0 .../asyncio_streams/README.md | 0 .../asyncio_streams/examples/example_basic.py | 0 .../asyncio_streams/exercise/exercise_01.py | 0 .../asyncio_streams/references/links.md | 0 .../asyncio_streams/tests/test_basic.py | 0 .../barriers_events/README.md | 0 .../barriers_events/examples/example_basic.py | 0 .../barriers_events/exercise/exercise_01.py | 0 .../barriers_events/references/links.md | 0 .../barriers_events/tests/test_basic.py | 0 .../basic_multiprocessing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../basic_multiprocessing/references/links.md | 0 .../basic_multiprocessing/tests/test_basic.py | 0 .../basic_threading/README.md | 0 .../basic_threading/examples/example_basic.py | 0 .../basic_threading/exercise/exercise_01.py | 0 .../basic_threading/references/links.md | 0 .../basic_threading/tests/test_basic.py | 0 .../concurrency_models/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../concurrency_models/references/links.md | 0 .../concurrency_models/tests/test_basic.py | 0 .../coroutines_async_await/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../event_loop_internals/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../event_loop_internals/references/links.md | 0 .../event_loop_internals/tests/test_basic.py | 0 .../locks_semaphores/README.md | 0 .../examples/example_basic.py | 0 .../locks_semaphores/exercise/exercise_01.py | 0 .../locks_semaphores/references/links.md | 0 .../locks_semaphores/tests/test_basic.py | 0 .../map_reduce/README.md | 0 .../map_reduce/examples/example_basic.py | 0 .../map_reduce/exercise/exercise_01.py | 0 .../map_reduce/references/links.md | 0 .../map_reduce/tests/test_basic.py | 0 .../parallel_pipeline/README.md | 0 .../examples/example_basic.py | 0 .../parallel_pipeline/exercise/exercise_01.py | 0 .../parallel_pipeline/references/links.md | 0 .../parallel_pipeline/tests/test_basic.py | 0 .../process_pools/README.md | 0 .../process_pools/examples/example_basic.py | 0 .../process_pools/exercise/exercise_01.py | 0 .../process_pools/references/links.md | 0 .../process_pools/tests/test_basic.py | 0 .../producer_consumer/README.md | 0 .../examples/example_basic.py | 0 .../producer_consumer/exercise/exercise_01.py | 0 .../producer_consumer/references/links.md | 0 .../producer_consumer/tests/test_basic.py | 0 .../profiling_concurrent/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../profiling_concurrent/references/links.md | 0 .../profiling_concurrent/tests/test_basic.py | 0 .../race_detection/README.md | 0 .../race_detection/examples/example_basic.py | 0 .../race_detection/exercise/exercise_01.py | 0 .../race_detection/references/links.md | 0 .../race_detection/tests/test_basic.py | 0 .../shared_memory/README.md | 0 .../shared_memory/examples/example_basic.py | 0 .../shared_memory/exercise/exercise_01.py | 0 .../shared_memory/references/links.md | 0 .../shared_memory/tests/test_basic.py | 0 .../subinterpreters_communication/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../subinterpreters_usage/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../subinterpreters_usage/references/links.md | 0 .../subinterpreters_usage/tests/test_basic.py | 0 .../taskgroups/README.md | 0 .../taskgroups/examples/example_basic.py | 0 .../taskgroups/exercise/exercise_01.py | 0 .../taskgroups/references/links.md | 0 .../taskgroups/tests/test_basic.py | 0 .../thread_pools/README.md | 0 .../thread_pools/examples/example_basic.py | 0 .../thread_pools/exercise/exercise_01.py | 0 .../thread_pools/references/links.md | 0 .../thread_pools/tests/test_basic.py | 0 .../threading_freethreading/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../06_typing_metaprogramming}/README.md | 0 .../abstract_base_classes/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../abstract_base_classes/references/links.md | 0 .../abstract_base_classes/tests/test_basic.py | 0 .../advanced_descriptors/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../advanced_descriptors/references/links.md | 0 .../advanced_descriptors/tests/test_basic.py | 0 .../advanced_metaclasses/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../advanced_metaclasses/references/links.md | 0 .../advanced_metaclasses/tests/test_basic.py | 0 .../advanced_typing/README.md | 0 .../advanced_typing/examples/example_basic.py | 0 .../advanced_typing/exercise/exercise_01.py | 0 .../advanced_typing/references/links.md | 0 .../advanced_typing/tests/test_basic.py | 0 .../ast_basics/README.md | 0 .../ast_basics/examples/example_basic.py | 0 .../ast_basics/exercise/exercise_01.py | 0 .../ast_basics/references/links.md | 0 .../ast_basics/tests/test_basic.py | 0 .../ast_manipulation/README.md | 0 .../examples/example_basic.py | 0 .../ast_manipulation/exercise/exercise_01.py | 0 .../ast_manipulation/references/links.md | 0 .../ast_manipulation/tests/test_basic.py | 0 .../basic_mypy/README.md | 0 .../basic_mypy/examples/example_basic.py | 0 .../basic_mypy/exercise/exercise_01.py | 0 .../basic_mypy/references/links.md | 0 .../basic_mypy/tests/test_basic.py | 0 .../basic_type_hints/README.md | 0 .../examples/advanced_patterns.py | 0 .../examples/basic_annotations.py | 0 .../examples/example_basic.py | 0 .../exercise/advanced_exercise.py | 0 .../exercise/basic_exercise.py | 0 .../basic_type_hints/exercise/exercise_01.py | 0 .../exercise/intermediate_exercise.py | 0 .../basic_type_hints/references/links.md | 0 .../basic_type_hints/tests/test_advanced.py | 0 .../basic_type_hints/tests/test_basic.py | 0 .../tests/test_intermediate.py | 0 .../class_decorators/README.md | 0 .../examples/example_basic.py | 0 .../class_decorators/exercise/exercise_01.py | 0 .../class_decorators/references/links.md | 0 .../class_decorators/tests/test_basic.py | 0 .../dynamic_classes/README.md | 0 .../dynamic_classes/examples/example_basic.py | 0 .../dynamic_classes/exercise/exercise_01.py | 0 .../dynamic_classes/references/links.md | 0 .../dynamic_classes/tests/test_basic.py | 0 .../exec_eval_compile/README.md | 0 .../examples/example_basic.py | 0 .../exec_eval_compile/exercise/exercise_01.py | 0 .../exec_eval_compile/references/links.md | 0 .../exec_eval_compile/tests/test_basic.py | 0 .../generics_typevar/README.md | 0 .../examples/example_basic.py | 0 .../generics_typevar/exercise/exercise_01.py | 0 .../generics_typevar/references/links.md | 0 .../generics_typevar/tests/test_basic.py | 0 .../init_subclass/README.md | 0 .../init_subclass/examples/example_basic.py | 0 .../init_subclass/exercise/exercise_01.py | 0 .../init_subclass/references/links.md | 0 .../init_subclass/tests/test_basic.py | 0 .../introspection_inspect/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../introspection_inspect/references/links.md | 0 .../introspection_inspect/tests/test_basic.py | 0 .../literal_types/README.md | 0 .../literal_types/examples/example_basic.py | 0 .../literal_types/exercise/exercise_01.py | 0 .../literal_types/references/links.md | 0 .../literal_types/tests/test_basic.py | 0 .../metaclasses_intro/README.md | 0 .../examples/example_basic.py | 0 .../metaclasses_intro/exercise/exercise_01.py | 0 .../metaclasses_intro/references/links.md | 0 .../metaclasses_intro/tests/test_basic.py | 0 .../overload/README.md | 0 .../overload/examples/example_basic.py | 0 .../overload/exercise/exercise_01.py | 0 .../overload/references/links.md | 0 .../overload/tests/test_basic.py | 0 .../protocol_structural_typing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../runtime_type_checking/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../runtime_type_checking/references/links.md | 0 .../runtime_type_checking/tests/test_basic.py | 0 .../set_name_descriptor/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../set_name_descriptor/references/links.md | 0 .../set_name_descriptor/tests/test_basic.py | 0 .../typeddict_namedtuple/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../typeddict_namedtuple/references/links.md | 0 .../typeddict_namedtuple/tests/test_basic.py | 0 .../union_optional/README.md | 0 .../union_optional/examples/example_basic.py | 0 .../union_optional/exercise/exercise_01.py | 0 .../union_optional/references/links.md | 0 .../union_optional/tests/test_basic.py | 0 .../01_basic_gof/README.md | 0 .../01_basic_gof/adapter/README.md | 0 .../adapter/examples/example_basic.py | 0 .../adapter/exercise/exercise_01.py | 0 .../01_basic_gof/adapter/references/links.md | 0 .../01_basic_gof/adapter/tests/test_basic.py | 0 .../01_basic_gof/builder/README.md | 0 .../builder/examples/example_basic.py | 0 .../builder/exercise/exercise_01.py | 0 .../01_basic_gof/builder/references/links.md | 0 .../01_basic_gof/builder/tests/test_basic.py | 0 .../01_basic_gof/command/README.md | 0 .../command/examples/example_basic.py | 0 .../command/exercise/exercise_01.py | 0 .../01_basic_gof/command/references/links.md | 0 .../01_basic_gof/command/tests/test_basic.py | 0 .../01_basic_gof/decorator_pattern/README.md | 0 .../examples/example_basic.py | 0 .../decorator_pattern/exercise/exercise_01.py | 0 .../decorator_pattern/references/links.md | 0 .../decorator_pattern/tests/test_basic.py | 0 .../01_basic_gof/facade/README.md | 0 .../facade/examples/example_basic.py | 0 .../facade/exercise/exercise_01.py | 0 .../01_basic_gof/facade/references/links.md | 0 .../01_basic_gof/facade/tests/test_basic.py | 0 .../01_basic_gof/factory_method/README.md | 0 .../factory_method/examples/example_basic.py | 0 .../factory_method/exercise/exercise_01.py | 0 .../factory_method/references/links.md | 0 .../factory_method/tests/test_basic.py | 0 .../01_basic_gof/iterator/README.md | 0 .../iterator/examples/example_basic.py | 0 .../iterator/exercise/exercise_01.py | 0 .../01_basic_gof/iterator/references/links.md | 0 .../01_basic_gof/iterator/tests/test_basic.py | 0 .../01_basic_gof/observer/README.md | 0 .../observer/examples/example_basic.py | 0 .../observer/exercise/exercise_01.py | 0 .../01_basic_gof/observer/references/links.md | 0 .../01_basic_gof/observer/tests/test_basic.py | 0 .../01_basic_gof/singleton/README.md | 0 .../singleton/examples/example_basic.py | 0 .../singleton/exercise/exercise_01.py | 0 .../singleton/references/links.md | 0 .../singleton/tests/test_basic.py | 0 .../01_basic_gof/strategy/README.md | 0 .../strategy/examples/example_basic.py | 0 .../strategy/exercise/exercise_01.py | 0 .../01_basic_gof/strategy/references/links.md | 0 .../01_basic_gof/strategy/tests/test_basic.py | 0 .../01_basic_gof/template_method/README.md | 0 .../template_method/examples/example_basic.py | 0 .../template_method/exercise/exercise_01.py | 0 .../template_method/references/links.md | 0 .../template_method/tests/test_basic.py | 0 .../02_pythonic_patterns/README.md | 0 .../borg_monostate/README.md | 0 .../borg_monostate/examples/example_basic.py | 0 .../borg_monostate/exercise/exercise_01.py | 0 .../borg_monostate/references/links.md | 0 .../borg_monostate/tests/test_basic.py | 0 .../context_manager/README.md | 0 .../context_manager/examples/example_basic.py | 0 .../context_manager/exercise/exercise_01.py | 0 .../context_manager/references/links.md | 0 .../context_manager/tests/test_basic.py | 0 .../02_pythonic_patterns/coroutine/README.md | 0 .../coroutine/examples/example_basic.py | 0 .../coroutine/exercise/exercise_01.py | 0 .../coroutine/references/links.md | 0 .../coroutine/tests/test_basic.py | 0 .../02_pythonic_patterns/dataclass/README.md | 0 .../dataclass/examples/example_basic.py | 0 .../dataclass/exercise/exercise_01.py | 0 .../dataclass/references/links.md | 0 .../dataclass/tests/test_basic.py | 0 .../decorator_funcion/README.md | 0 .../examples/example_basic.py | 0 .../decorator_funcion/exercise/exercise_01.py | 0 .../decorator_funcion/references/links.md | 0 .../decorator_funcion/tests/test_basic.py | 0 .../02_pythonic_patterns/descriptor/README.md | 0 .../descriptor/examples/example_basic.py | 0 .../descriptor/exercise/exercise_01.py | 0 .../descriptor/references/links.md | 0 .../descriptor/tests/test_basic.py | 0 .../02_pythonic_patterns/generator/README.md | 0 .../generator/examples/example_basic.py | 0 .../generator/exercise/exercise_01.py | 0 .../generator/references/links.md | 0 .../generator/tests/test_basic.py | 0 .../lazy_property/README.md | 0 .../lazy_property/examples/example_basic.py | 0 .../lazy_property/exercise/exercise_01.py | 0 .../lazy_property/references/links.md | 0 .../lazy_property/tests/test_basic.py | 0 .../02_pythonic_patterns/mixin/README.md | 0 .../mixin/examples/example_basic.py | 0 .../mixin/exercise/exercise_01.py | 0 .../mixin/references/links.md | 0 .../mixin/tests/test_basic.py | 0 .../plugin_system/README.md | 0 .../plugin_system/examples/example_basic.py | 0 .../plugin_system/exercise/exercise_01.py | 0 .../plugin_system/references/links.md | 0 .../plugin_system/tests/test_basic.py | 0 .../02_pythonic_patterns/property/README.md | 0 .../property/examples/example_basic.py | 0 .../property/exercise/exercise_01.py | 0 .../property/references/links.md | 0 .../property/tests/test_basic.py | 0 .../02_pythonic_patterns/protocol/README.md | 0 .../protocol/examples/example_basic.py | 0 .../protocol/exercise/exercise_01.py | 0 .../protocol/references/links.md | 0 .../protocol/tests/test_basic.py | 0 .../02_pythonic_patterns/registry/README.md | 0 .../registry/examples/example_basic.py | 0 .../registry/exercise/exercise_01.py | 0 .../registry/references/links.md | 0 .../registry/tests/test_basic.py | 0 .../02_pythonic_patterns/sentinel/README.md | 0 .../sentinel/examples/example_basic.py | 0 .../sentinel/exercise/exercise_01.py | 0 .../sentinel/references/links.md | 0 .../sentinel/tests/test_basic.py | 0 .../03_advanced_gof/README.md | 0 .../abstract_factory/README.md | 0 .../examples/example_basic.py | 0 .../abstract_factory/exercise/exercise_01.py | 0 .../abstract_factory/references/links.md | 0 .../abstract_factory/tests/test_basic.py | 0 .../03_advanced_gof/bridge/README.md | 0 .../bridge/examples/example_basic.py | 0 .../bridge/exercise/exercise_01.py | 0 .../bridge/references/links.md | 0 .../bridge/tests/test_basic.py | 0 .../chain_of_responsibility/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../03_advanced_gof/composite/README.md | 0 .../composite/examples/example_basic.py | 0 .../composite/exercise/exercise_01.py | 0 .../composite/references/links.md | 0 .../composite/tests/test_basic.py | 0 .../03_advanced_gof/flyweight/README.md | 0 .../flyweight/examples/example_basic.py | 0 .../flyweight/exercise/exercise_01.py | 0 .../flyweight/references/links.md | 0 .../flyweight/tests/test_basic.py | 0 .../03_advanced_gof/interpreter/README.md | 0 .../interpreter/examples/example_basic.py | 0 .../interpreter/exercise/exercise_01.py | 0 .../interpreter/references/links.md | 0 .../interpreter/tests/test_basic.py | 0 .../03_advanced_gof/mediator/README.md | 0 .../mediator/examples/example_basic.py | 0 .../mediator/exercise/exercise_01.py | 0 .../mediator/references/links.md | 0 .../mediator/tests/test_basic.py | 0 .../03_advanced_gof/memento/README.md | 0 .../memento/examples/example_basic.py | 0 .../memento/exercise/exercise_01.py | 0 .../memento/references/links.md | 0 .../memento/tests/test_basic.py | 0 .../03_advanced_gof/prototype/README.md | 0 .../prototype/examples/example_basic.py | 0 .../prototype/exercise/exercise_01.py | 0 .../prototype/references/links.md | 0 .../prototype/tests/test_basic.py | 0 .../03_advanced_gof/proxy/README.md | 0 .../proxy/examples/example_basic.py | 0 .../proxy/exercise/exercise_01.py | 0 .../03_advanced_gof/proxy/references/links.md | 0 .../03_advanced_gof/proxy/tests/test_basic.py | 0 .../03_advanced_gof/state/README.md | 0 .../state/examples/example_basic.py | 0 .../state/exercise/exercise_01.py | 0 .../03_advanced_gof/state/references/links.md | 0 .../03_advanced_gof/state/tests/test_basic.py | 0 .../03_advanced_gof/visitor/README.md | 0 .../visitor/examples/example_basic.py | 0 .../visitor/exercise/exercise_01.py | 0 .../visitor/references/links.md | 0 .../visitor/tests/test_basic.py | 0 .../04_architectural/README.md | 0 .../04_architectural/active_record/README.md | 0 .../active_record/examples/example_basic.py | 0 .../active_record/exercise/exercise_01.py | 0 .../active_record/references/links.md | 0 .../active_record/tests/test_basic.py | 0 .../04_architectural/api_gateway/README.md | 0 .../api_gateway/examples/example_basic.py | 0 .../api_gateway/exercise/exercise_01.py | 0 .../api_gateway/references/links.md | 0 .../api_gateway/tests/test_basic.py | 0 .../clean_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../clean_architecture/references/links.md | 0 .../clean_architecture/tests/test_basic.py | 0 .../04_architectural/data_mapper/README.md | 0 .../data_mapper/examples/example_basic.py | 0 .../data_mapper/exercise/exercise_01.py | 0 .../data_mapper/references/links.md | 0 .../data_mapper/tests/test_basic.py | 0 .../dependency_injection/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../dependency_injection/references/links.md | 0 .../dependency_injection/tests/test_basic.py | 0 .../04_architectural/domain_model/README.md | 0 .../domain_model/examples/example_basic.py | 0 .../domain_model/exercise/exercise_01.py | 0 .../domain_model/references/links.md | 0 .../domain_model/tests/test_basic.py | 0 .../hexagonal_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../04_architectural/mvc/README.md | 0 .../mvc/examples/example_basic.py | 0 .../mvc/exercise/exercise_01.py | 0 .../04_architectural/mvc/references/links.md | 0 .../04_architectural/mvc/tests/test_basic.py | 0 .../04_architectural/mvp/README.md | 0 .../mvp/examples/example_basic.py | 0 .../mvp/exercise/exercise_01.py | 0 .../04_architectural/mvp/references/links.md | 0 .../04_architectural/mvp/tests/test_basic.py | 0 .../04_architectural/mvvm/README.md | 0 .../mvvm/examples/example_basic.py | 0 .../mvvm/exercise/exercise_01.py | 0 .../04_architectural/mvvm/references/links.md | 0 .../04_architectural/mvvm/tests/test_basic.py | 0 .../04_architectural/repository/README.md | 0 .../repository/examples/example_basic.py | 0 .../repository/exercise/exercise_01.py | 0 .../repository/references/links.md | 0 .../repository/tests/test_basic.py | 0 .../04_architectural/service_layer/README.md | 0 .../service_layer/examples/example_basic.py | 0 .../service_layer/exercise/exercise_01.py | 0 .../service_layer/references/links.md | 0 .../service_layer/tests/test_basic.py | 0 .../04_architectural/unit_of_work/README.md | 0 .../unit_of_work/examples/example_basic.py | 0 .../unit_of_work/exercise/exercise_01.py | 0 .../unit_of_work/references/links.md | 0 .../unit_of_work/tests/test_basic.py | 0 .../05_distributed_systems/README.md | 0 .../backend_for_frontend/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../backend_for_frontend/references/links.md | 0 .../backend_for_frontend/tests/test_basic.py | 0 .../05_distributed_systems/bulkhead/README.md | 0 .../bulkhead/examples/example_basic.py | 0 .../bulkhead/exercise/exercise_01.py | 0 .../bulkhead/references/links.md | 0 .../bulkhead/tests/test_basic.py | 0 .../cache_aside/README.md | 0 .../cache_aside/examples/example_basic.py | 0 .../cache_aside/exercise/exercise_01.py | 0 .../cache_aside/references/links.md | 0 .../cache_aside/tests/test_basic.py | 0 .../circuit_breaker/README.md | 0 .../circuit_breaker/examples/example_basic.py | 0 .../circuit_breaker/exercise/exercise_01.py | 0 .../circuit_breaker/references/links.md | 0 .../circuit_breaker/tests/test_basic.py | 0 .../05_distributed_systems/cqrs/README.md | 0 .../cqrs/examples/example_basic.py | 0 .../cqrs/exercise/exercise_01.py | 0 .../cqrs/references/links.md | 0 .../cqrs/tests/test_basic.py | 0 .../event_driven/README.md | 0 .../event_driven/examples/example_basic.py | 0 .../event_driven/exercise/exercise_01.py | 0 .../event_driven/references/links.md | 0 .../event_driven/tests/test_basic.py | 0 .../event_sourcing/README.md | 0 .../event_sourcing/examples/example_basic.py | 0 .../event_sourcing/exercise/exercise_01.py | 0 .../event_sourcing/references/links.md | 0 .../event_sourcing/tests/test_basic.py | 0 .../rate_limiter/README.md | 0 .../rate_limiter/examples/example_basic.py | 0 .../rate_limiter/exercise/exercise_01.py | 0 .../rate_limiter/references/links.md | 0 .../rate_limiter/tests/test_basic.py | 0 .../retry_pattern/README.md | 0 .../retry_pattern/examples/example_basic.py | 0 .../retry_pattern/exercise/exercise_01.py | 0 .../retry_pattern/references/links.md | 0 .../retry_pattern/tests/test_basic.py | 0 .../05_distributed_systems/saga/README.md | 0 .../saga/examples/example_basic.py | 0 .../saga/exercise/exercise_01.py | 0 .../saga/references/links.md | 0 .../saga/tests/test_basic.py | 0 .../05_distributed_systems/sidecar/README.md | 0 .../sidecar/examples/example_basic.py | 0 .../sidecar/exercise/exercise_01.py | 0 .../sidecar/references/links.md | 0 .../sidecar/tests/test_basic.py | 0 .../05_distributed_systems/timeout/README.md | 0 .../timeout/examples/example_basic.py | 0 .../timeout/exercise/exercise_01.py | 0 .../timeout/references/links.md | 0 .../timeout/tests/test_basic.py | 0 .../06_concurrency/README.md | 0 .../06_concurrency/active_object/README.md | 0 .../active_object/examples/example_basic.py | 0 .../active_object/exercise/exercise_01.py | 0 .../active_object/references/links.md | 0 .../active_object/tests/test_basic.py | 0 .../06_concurrency/barrier_pattern/README.md | 0 .../barrier_pattern/examples/example_basic.py | 0 .../barrier_pattern/exercise/exercise_01.py | 0 .../barrier_pattern/references/links.md | 0 .../barrier_pattern/tests/test_basic.py | 0 .../double_checked_locking/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../06_concurrency/future_promise/README.md | 0 .../future_promise/examples/example_basic.py | 0 .../future_promise/exercise/exercise_01.py | 0 .../future_promise/references/links.md | 0 .../future_promise/tests/test_basic.py | 0 .../half_sync_half_async/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../half_sync_half_async/references/links.md | 0 .../half_sync_half_async/tests/test_basic.py | 0 .../06_concurrency/leader_followers/README.md | 0 .../examples/example_basic.py | 0 .../leader_followers/exercise/exercise_01.py | 0 .../leader_followers/references/links.md | 0 .../leader_followers/tests/test_basic.py | 0 .../06_concurrency/monitor_object/README.md | 0 .../monitor_object/examples/example_basic.py | 0 .../monitor_object/exercise/exercise_01.py | 0 .../monitor_object/references/links.md | 0 .../monitor_object/tests/test_basic.py | 0 .../06_concurrency/proactor/README.md | 0 .../proactor/examples/example_basic.py | 0 .../proactor/exercise/exercise_01.py | 0 .../proactor/references/links.md | 0 .../proactor/tests/test_basic.py | 0 .../producer_consumer/README.md | 0 .../examples/example_basic.py | 0 .../producer_consumer/exercise/exercise_01.py | 0 .../producer_consumer/references/links.md | 0 .../producer_consumer/tests/test_basic.py | 0 .../06_concurrency/reactor/README.md | 0 .../reactor/examples/example_basic.py | 0 .../reactor/exercise/exercise_01.py | 0 .../reactor/references/links.md | 0 .../reactor/tests/test_basic.py | 0 .../06_concurrency/read_write_lock/README.md | 0 .../read_write_lock/examples/example_basic.py | 0 .../read_write_lock/exercise/exercise_01.py | 0 .../read_write_lock/references/links.md | 0 .../read_write_lock/tests/test_basic.py | 0 .../06_concurrency/scheduler/README.md | 0 .../scheduler/examples/example_basic.py | 0 .../scheduler/exercise/exercise_01.py | 0 .../scheduler/references/links.md | 0 .../scheduler/tests/test_basic.py | 0 .../06_concurrency/thread_pool/README.md | 0 .../thread_pool/examples/example_basic.py | 0 .../thread_pool/exercise/exercise_01.py | 0 .../thread_pool/references/links.md | 0 .../thread_pool/tests/test_basic.py | 0 .../thread_specific_storage/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../07_messaging/README.md | 0 .../07_messaging/event_bus/README.md | 0 .../event_bus/examples/example_basic.py | 0 .../event_bus/exercise/exercise_01.py | 0 .../event_bus/references/links.md | 0 .../event_bus/tests/test_basic.py | 0 .../07_messaging/message_queue/README.md | 0 .../message_queue/examples/example_basic.py | 0 .../message_queue/exercise/exercise_01.py | 0 .../message_queue/references/links.md | 0 .../message_queue/tests/test_basic.py | 0 .../07_messaging/publish_subscribe/README.md | 0 .../examples/example_basic.py | 0 .../publish_subscribe/exercise/exercise_01.py | 0 .../publish_subscribe/references/links.md | 0 .../publish_subscribe/tests/test_basic.py | 0 .../07_messaging/request_reply/README.md | 0 .../request_reply/examples/example_basic.py | 0 .../request_reply/exercise/exercise_01.py | 0 .../request_reply/references/links.md | 0 .../request_reply/tests/test_basic.py | 0 .../08_object_management/README.md | 0 .../08_object_management/aggregate/README.md | 0 .../aggregate/examples/example_basic.py | 0 .../aggregate/exercise/exercise_01.py | 0 .../aggregate/references/links.md | 0 .../aggregate/tests/test_basic.py | 0 .../eager_initialization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../eager_initialization/references/links.md | 0 .../eager_initialization/tests/test_basic.py | 0 .../08_object_management/entity/README.md | 0 .../entity/examples/example_basic.py | 0 .../entity/exercise/exercise_01.py | 0 .../entity/references/links.md | 0 .../entity/tests/test_basic.py | 0 .../lazy_initialization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../lazy_initialization/references/links.md | 0 .../lazy_initialization/tests/test_basic.py | 0 .../08_object_management/multiton/README.md | 0 .../multiton/examples/example_basic.py | 0 .../multiton/exercise/exercise_01.py | 0 .../multiton/references/links.md | 0 .../multiton/tests/test_basic.py | 0 .../null_object/README.md | 0 .../null_object/examples/example_basic.py | 0 .../null_object/exercise/exercise_01.py | 0 .../null_object/references/links.md | 0 .../null_object/tests/test_basic.py | 0 .../object_pool/README.md | 0 .../object_pool/examples/example_basic.py | 0 .../object_pool/exercise/exercise_01.py | 0 .../object_pool/references/links.md | 0 .../object_pool/tests/test_basic.py | 0 .../value_object/README.md | 0 .../value_object/examples/example_basic.py | 0 .../value_object/exercise/exercise_01.py | 0 .../value_object/references/links.md | 0 .../value_object/tests/test_basic.py | 0 .../07_design_patterns}/README.md | 0 .../08_application_architecture}/README.md | 0 .../cqrs_pattern/README.md | 0 .../cqrs_pattern/examples/example_basic.py | 0 .../cqrs_pattern/exercise/exercise_01.py | 0 .../cqrs_pattern/references/links.md | 0 .../cqrs_pattern/tests/test_basic.py | 0 .../ddd_intro/README.md | 0 .../ddd_intro/examples/example_basic.py | 0 .../ddd_intro/exercise/exercise_01.py | 0 .../ddd_intro/references/links.md | 0 .../ddd_intro/tests/test_basic.py | 0 .../dependency_injection/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../dependency_injection/references/links.md | 0 .../dependency_injection/tests/test_basic.py | 0 .../dependency_inversion/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../dependency_inversion/references/links.md | 0 .../dependency_inversion/tests/test_basic.py | 0 .../entities_value_objects/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../event_driven_arch/README.md | 0 .../examples/example_basic.py | 0 .../event_driven_arch/exercise/exercise_01.py | 0 .../event_driven_arch/references/links.md | 0 .../event_driven_arch/tests/test_basic.py | 0 .../hexagonal_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../interface_segregation/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../interface_segregation/references/links.md | 0 .../interface_segregation/tests/test_basic.py | 0 .../inversion_control/README.md | 0 .../examples/example_basic.py | 0 .../inversion_control/exercise/exercise_01.py | 0 .../inversion_control/references/links.md | 0 .../inversion_control/tests/test_basic.py | 0 .../liskov_substitution/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../liskov_substitution/references/links.md | 0 .../liskov_substitution/tests/test_basic.py | 0 .../observability/README.md | 0 .../observability/examples/example_basic.py | 0 .../observability/exercise/exercise_01.py | 0 .../observability/references/links.md | 0 .../observability/tests/test_basic.py | 0 .../open_closed/README.md | 0 .../open_closed/examples/example_basic.py | 0 .../open_closed/exercise/exercise_01.py | 0 .../open_closed/references/links.md | 0 .../open_closed/tests/test_basic.py | 0 .../ports_adapters/README.md | 0 .../ports_adapters/examples/example_basic.py | 0 .../ports_adapters/exercise/exercise_01.py | 0 .../ports_adapters/references/links.md | 0 .../ports_adapters/tests/test_basic.py | 0 .../repositories/README.md | 0 .../repositories/examples/example_basic.py | 0 .../repositories/exercise/exercise_01.py | 0 .../repositories/references/links.md | 0 .../repositories/tests/test_basic.py | 0 .../services_uow/README.md | 0 .../services_uow/examples/example_basic.py | 0 .../services_uow/exercise/exercise_01.py | 0 .../services_uow/references/links.md | 0 .../services_uow/tests/test_basic.py | 0 .../single_responsibility/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../single_responsibility/references/links.md | 0 .../single_responsibility/tests/test_basic.py | 0 .../solid_principles/README.md | 0 .../examples/example_basic.py | 0 .../solid_principles/exercise/exercise_01.py | 0 .../solid_principles/references/links.md | 0 .../solid_principles/tests/test_basic.py | 0 .../structured_logging/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../structured_logging/references/links.md | 0 .../structured_logging/tests/test_basic.py | 0 .../09_testing_qa}/README.md | 0 .../bdd_behave_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../bdd_behave_optional/references/links.md | 0 .../bdd_behave_optional/tests/test_basic.py | 0 .../09_testing_qa}/ci_testing/README.md | 0 .../ci_testing/examples/example_basic.py | 0 .../ci_testing/exercise/exercise_01.py | 0 .../ci_testing/references/links.md | 0 .../ci_testing/tests/test_basic.py | 0 .../09_testing_qa}/contract_testing/README.md | 0 .../examples/example_basic.py | 0 .../contract_testing/exercise/exercise_01.py | 0 .../contract_testing/references/links.md | 0 .../contract_testing/tests/test_basic.py | 0 .../coverage_analysis/README.md | 0 .../examples/example_basic.py | 0 .../coverage_analysis/exercise/exercise_01.py | 0 .../coverage_analysis/references/links.md | 0 .../coverage_analysis/tests/test_basic.py | 0 .../09_testing_qa}/fixtures/README.md | 0 .../fixtures/examples/example_basic.py | 0 .../fixtures/exercise/exercise_01.py | 0 .../fixtures/references/links.md | 0 .../fixtures/tests/test_basic.py | 0 .../09_testing_qa}/hypothesis_intro/README.md | 0 .../examples/example_basic.py | 0 .../hypothesis_intro/exercise/exercise_01.py | 0 .../hypothesis_intro/references/links.md | 0 .../hypothesis_intro/tests/test_basic.py | 0 .../integration_testing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../integration_testing/references/links.md | 0 .../integration_testing/tests/test_basic.py | 0 .../09_testing_qa}/mocking_unittest/README.md | 0 .../examples/example_basic.py | 0 .../mocking_unittest/exercise/exercise_01.py | 0 .../mocking_unittest/references/links.md | 0 .../mocking_unittest/tests/test_basic.py | 0 .../09_testing_qa}/mutation_testing/README.md | 0 .../examples/example_basic.py | 0 .../mutation_testing/exercise/exercise_01.py | 0 .../mutation_testing/references/links.md | 0 .../mutation_testing/tests/test_basic.py | 0 .../09_testing_qa}/parametrize/README.md | 0 .../parametrize/examples/example_basic.py | 0 .../parametrize/exercise/exercise_01.py | 0 .../parametrize/references/links.md | 0 .../parametrize/tests/test_basic.py | 0 .../property_based_testing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../09_testing_qa}/pytest_asyncio/README.md | 0 .../pytest_asyncio/examples/example_basic.py | 0 .../pytest_asyncio/exercise/exercise_01.py | 0 .../pytest_asyncio/references/links.md | 0 .../pytest_asyncio/tests/test_basic.py | 0 .../09_testing_qa}/pytest_basics/README.md | 0 .../pytest_basics/examples/example_basic.py | 0 .../pytest_basics/exercise/exercise_01.py | 0 .../pytest_basics/references/links.md | 0 .../pytest_basics/tests/test_basic.py | 0 .../09_testing_qa}/pytest_mock/README.md | 0 .../pytest_mock/examples/example_basic.py | 0 .../pytest_mock/exercise/exercise_01.py | 0 .../pytest_mock/references/links.md | 0 .../pytest_mock/tests/test_basic.py | 0 .../09_testing_qa}/tdd_basics/README.md | 0 .../tdd_basics/examples/example_basic.py | 0 .../tdd_basics/exercise/exercise_01.py | 0 .../tdd_basics/references/links.md | 0 .../tdd_basics/tests/test_basic.py | 0 .../test_organization/README.md | 0 .../examples/example_basic.py | 0 .../test_organization/exercise/exercise_01.py | 0 .../test_organization/references/links.md | 0 .../test_organization/tests/test_basic.py | 0 .../10_performance_optimization}/README.md | 0 .../algorithmic_complexity/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../benchmarking_timeit/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../benchmarking_timeit/references/links.md | 0 .../benchmarking_timeit/tests/test_basic.py | 0 .../caching_lru/README.md | 0 .../caching_lru/examples/example_basic.py | 0 .../caching_lru/exercise/exercise_01.py | 0 .../caching_lru/references/links.md | 0 .../caching_lru/tests/test_basic.py | 0 .../cython_basics/README.md | 0 .../cython_basics/examples/example_basic.py | 0 .../cython_basics/exercise/exercise_01.py | 0 .../cython_basics/references/links.md | 0 .../cython_basics/tests/test_basic.py | 0 .../lazy_evaluation/README.md | 0 .../lazy_evaluation/examples/example_basic.py | 0 .../lazy_evaluation/exercise/exercise_01.py | 0 .../lazy_evaluation/references/links.md | 0 .../lazy_evaluation/tests/test_basic.py | 0 .../line_profiler/README.md | 0 .../line_profiler/examples/example_basic.py | 0 .../line_profiler/exercise/exercise_01.py | 0 .../line_profiler/references/links.md | 0 .../line_profiler/tests/test_basic.py | 0 .../memory_optimization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../memory_optimization/references/links.md | 0 .../memory_optimization/tests/test_basic.py | 0 .../numba_jit/README.md | 0 .../numba_jit/examples/example_basic.py | 0 .../numba_jit/exercise/exercise_01.py | 0 .../numba_jit/references/links.md | 0 .../numba_jit/tests/test_basic.py | 0 .../numpy_vectorization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../numpy_vectorization/references/links.md | 0 .../numpy_vectorization/tests/test_basic.py | 0 .../optimization_techniques/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../profiling_cprofile/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../profiling_cprofile/references/links.md | 0 .../profiling_cprofile/tests/test_basic.py | 0 .../pypy_intro/README.md | 0 .../pypy_intro/examples/example_basic.py | 0 .../pypy_intro/exercise/exercise_01.py | 0 .../pypy_intro/references/links.md | 0 .../pypy_intro/tests/test_basic.py | 0 .../pyspy_profiling/README.md | 0 .../pyspy_profiling/examples/example_basic.py | 0 .../pyspy_profiling/exercise/exercise_01.py | 0 .../pyspy_profiling/references/links.md | 0 .../pyspy_profiling/tests/test_basic.py | 0 .../pytest_benchmark/README.md | 0 .../examples/example_basic.py | 0 .../pytest_benchmark/exercise/exercise_01.py | 0 .../pytest_benchmark/references/links.md | 0 .../pytest_benchmark/tests/test_basic.py | 0 .../01_uv_introduction/README.md | 0 .../examples/benchmark_basic.py | 0 .../examples/example_basic.py | 0 .../exercise/basic_exercise.py | 0 .../exercise/exercise_01.py | 0 .../01_uv_introduction/references/links.md | 0 .../01_uv_introduction/tests/test_basic.py | 0 .../01_uv_introduction_architecture/README.md | 0 .../examples/01_speed_comparison.py | 0 .../examples/02_cache_architecture.py | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.md | 0 .../exercise/exercise_01.py | 0 .../exercise/exercise_02.md | 0 .../references/links.md | 0 .../references/references.md | 0 .../tests/test_basic.py | 0 .../tests/test_uv_basics.py | 0 .../README.md | 0 .../examples/01_installation_verification.py | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../03_uv_pip_package_installation/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../04_uv_venv_virtual_environments/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../05_uv_tool_global_tools/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../06_uv_pyproject_toml/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../06_uv_pyproject_toml/references/links.md | 0 .../06_uv_pyproject_toml/tests/test_basic.py | 0 .../07_uv_lock_files/README.md | 0 .../examples/example_basic.py | 0 .../07_uv_lock_files/exercise/exercise_01.py | 0 .../07_uv_lock_files/references/links.md | 0 .../07_uv_lock_files/tests/test_basic.py | 0 .../08_uv_workspaces_monorepos/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../09_uv_scripts_entry_points/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../10_ruff_introduction_speed/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../11_ruff_linter_rules/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../11_ruff_linter_rules/references/links.md | 0 .../11_ruff_linter_rules/tests/test_basic.py | 0 .../12_ruff_formatter_black/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../13_ruff_import_sorter_isort/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../14_ruff_pyproject_configuration/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../15_ruff_strict_rules/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../15_ruff_strict_rules/references/links.md | 0 .../15_ruff_strict_rules/tests/test_basic.py | 0 .../16_ruff_performance_benchmarks/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../17_ruff_workflow_integration/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../18_mypy_current_state_2026/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../19_pyright_basedpyright/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../20_pylyzer_type_checker_rust/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../21_type_checkers_comparison/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../22_strict_typing_configuration/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../25_precommit_security_hooks/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../27_pytest_advanced_fixtures/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../28_pytest_cov_coverage/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../29_pytest_xdist_parallelization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../30_hypothesis_property_testing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../31_mutation_testing_mutmut/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../33_memray_memory_profiling/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../34_viztracer_tracing_visual/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../35_debugpy_remote_debugging/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../11_modern_tooling_2026}/README.md | 0 .../12_fastapi_complete}/README.md | 0 .../alembic_migrations/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../alembic_migrations/references/links.md | 0 .../alembic_migrations/tests/test_basic.py | 0 .../async_databases/README.md | 0 .../async_databases/examples/example_basic.py | 0 .../async_databases/exercise/exercise_01.py | 0 .../async_databases/references/links.md | 0 .../async_databases/tests/test_basic.py | 0 .../authentication_jwt/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../authentication_jwt/references/links.md | 0 .../authentication_jwt/tests/test_basic.py | 0 .../background_tasks/README.md | 0 .../examples/example_basic.py | 0 .../background_tasks/exercise/exercise_01.py | 0 .../background_tasks/references/links.md | 0 .../background_tasks/tests/test_basic.py | 0 .../12_fastapi_complete}/cors/README.md | 0 .../cors/examples/example_basic.py | 0 .../cors/exercise/exercise_01.py | 0 .../cors/references/links.md | 0 .../cors/tests/test_basic.py | 0 .../dependency_injection/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../dependency_injection/references/links.md | 0 .../dependency_injection/tests/test_basic.py | 0 .../12_fastapi_complete}/deployment/README.md | 0 .../deployment/examples/example_basic.py | 0 .../deployment/exercise/exercise_01.py | 0 .../deployment/references/links.md | 0 .../deployment/tests/test_basic.py | 0 .../error_handling/README.md | 0 .../error_handling/examples/example_basic.py | 0 .../error_handling/exercise/exercise_01.py | 0 .../error_handling/references/links.md | 0 .../error_handling/tests/test_basic.py | 0 .../fastapi_intro/README.md | 0 .../fastapi_intro/examples/example_basic.py | 0 .../fastapi_intro/exercise/exercise_01.py | 0 .../fastapi_intro/references/links.md | 0 .../fastapi_intro/tests/test_basic.py | 0 .../fastapi_performance/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../fastapi_performance/references/links.md | 0 .../fastapi_performance/tests/test_basic.py | 0 .../file_uploads/README.md | 0 .../file_uploads/examples/example_basic.py | 0 .../file_uploads/exercise/exercise_01.py | 0 .../file_uploads/references/links.md | 0 .../file_uploads/tests/test_basic.py | 0 .../graphql_optional/README.md | 0 .../examples/example_basic.py | 0 .../graphql_optional/exercise/exercise_01.py | 0 .../graphql_optional/references/links.md | 0 .../graphql_optional/tests/test_basic.py | 0 .../logging_monitoring/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../logging_monitoring/references/links.md | 0 .../logging_monitoring/tests/test_basic.py | 0 .../12_fastapi_complete}/middleware/README.md | 0 .../middleware/examples/example_basic.py | 0 .../middleware/exercise/exercise_01.py | 0 .../middleware/references/links.md | 0 .../middleware/tests/test_basic.py | 0 .../12_fastapi_complete}/oauth2/README.md | 0 .../oauth2/examples/example_basic.py | 0 .../oauth2/exercise/exercise_01.py | 0 .../oauth2/references/links.md | 0 .../oauth2/tests/test_basic.py | 0 .../openapi_customization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../openapi_customization/references/links.md | 0 .../openapi_customization/tests/test_basic.py | 0 .../path_query_params/README.md | 0 .../examples/example_basic.py | 0 .../path_query_params/exercise/exercise_01.py | 0 .../path_query_params/references/links.md | 0 .../path_query_params/tests/test_basic.py | 0 .../pydantic_models/README.md | 0 .../pydantic_models/examples/example_basic.py | 0 .../pydantic_models/exercise/exercise_01.py | 0 .../pydantic_models/references/links.md | 0 .../pydantic_models/tests/test_basic.py | 0 .../rate_limiting/README.md | 0 .../rate_limiting/examples/example_basic.py | 0 .../rate_limiting/exercise/exercise_01.py | 0 .../rate_limiting/references/links.md | 0 .../rate_limiting/tests/test_basic.py | 0 .../redis_caching/README.md | 0 .../redis_caching/examples/example_basic.py | 0 .../redis_caching/exercise/exercise_01.py | 0 .../redis_caching/references/links.md | 0 .../redis_caching/tests/test_basic.py | 0 .../request_body/README.md | 0 .../request_body/examples/example_basic.py | 0 .../request_body/exercise/exercise_01.py | 0 .../request_body/references/links.md | 0 .../request_body/tests/test_basic.py | 0 .../response_models/README.md | 0 .../response_models/examples/example_basic.py | 0 .../response_models/exercise/exercise_01.py | 0 .../response_models/references/links.md | 0 .../response_models/tests/test_basic.py | 0 .../12_fastapi_complete}/routing/README.md | 0 .../routing/examples/example_basic.py | 0 .../routing/exercise/exercise_01.py | 0 .../routing/references/links.md | 0 .../routing/tests/test_basic.py | 0 .../security_best_practices/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../sqlalchemy_integration/README.md | 0 .../examples/example_basic.py | 0 .../examples/library.db | Bin .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../testing_fastapi/README.md | 0 .../testing_fastapi/examples/example_basic.py | 0 .../testing_fastapi/exercise/exercise_01.py | 0 .../testing_fastapi/references/links.md | 0 .../testing_fastapi/tests/test_basic.py | 0 .../uvicorn_gunicorn/README.md | 0 .../examples/example_basic.py | 0 .../uvicorn_gunicorn/exercise/exercise_01.py | 0 .../uvicorn_gunicorn/references/links.md | 0 .../uvicorn_gunicorn/tests/test_basic.py | 0 .../12_fastapi_complete}/websockets/README.md | 0 .../websockets/examples/example_basic.py | 0 .../websockets/exercise/exercise_01.py | 0 .../websockets/references/links.md | 0 .../websockets/tests/test_basic.py | 0 .../13_backend_ecosystem}/README.md | 0 .../api_versioning/README.md | 0 .../api_versioning/examples/example_basic.py | 0 .../api_versioning/exercise/exercise_01.py | 0 .../api_versioning/references/links.md | 0 .../api_versioning/tests/test_basic.py | 0 .../arq_async_tasks/README.md | 0 .../arq_async_tasks/examples/example_basic.py | 0 .../arq_async_tasks/exercise/exercise_01.py | 0 .../arq_async_tasks/references/links.md | 0 .../arq_async_tasks/tests/test_basic.py | 0 .../celery_intro/README.md | 0 .../celery_intro/examples/example_basic.py | 0 .../celery_intro/exercise/exercise_01.py | 0 .../celery_intro/references/links.md | 0 .../celery_intro/tests/test_basic.py | 0 .../configuration_management/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../elasticsearch_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../graphql_schemas_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../grpc_intro/README.md | 0 .../grpc_intro/examples/example_basic.py | 0 .../grpc_intro/exercise/exercise_01.py | 0 .../grpc_intro/references/links.md | 0 .../grpc_intro/tests/test_basic.py | 0 .../kafka_basics/README.md | 0 .../kafka_basics/examples/example_basic.py | 0 .../kafka_basics/exercise/exercise_01.py | 0 .../kafka_basics/references/links.md | 0 .../kafka_basics/tests/test_basic.py | 0 .../opentelemetry/README.md | 0 .../opentelemetry/examples/example_basic.py | 0 .../opentelemetry/exercise/exercise_01.py | 0 .../opentelemetry/references/links.md | 0 .../opentelemetry/tests/test_basic.py | 0 .../postgresql_advanced/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../postgresql_advanced/references/links.md | 0 .../postgresql_advanced/tests/test_basic.py | 0 .../prometheus_metrics/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../prometheus_metrics/references/links.md | 0 .../prometheus_metrics/tests/test_basic.py | 0 .../13_backend_ecosystem}/protobuf/README.md | 0 .../protobuf/examples/example_basic.py | 0 .../protobuf/exercise/exercise_01.py | 0 .../protobuf/references/links.md | 0 .../protobuf/tests/test_basic.py | 0 .../rabbitmq_basics/README.md | 0 .../rabbitmq_basics/examples/example_basic.py | 0 .../rabbitmq_basics/exercise/exercise_01.py | 0 .../rabbitmq_basics/references/links.md | 0 .../rabbitmq_basics/tests/test_basic.py | 0 .../redis_basics/README.md | 0 .../redis_basics/examples/example_basic.py | 0 .../redis_basics/exercise/exercise_01.py | 0 .../redis_basics/references/links.md | 0 .../redis_basics/tests/test_basic.py | 0 .../redis_patterns/README.md | 0 .../redis_patterns/examples/example_basic.py | 0 .../redis_patterns/exercise/exercise_01.py | 0 .../redis_patterns/references/links.md | 0 .../redis_patterns/tests/test_basic.py | 0 .../redis_pubsub/README.md | 0 .../redis_pubsub/examples/example_basic.py | 0 .../redis_pubsub/exercise/exercise_01.py | 0 .../redis_pubsub/references/links.md | 0 .../redis_pubsub/tests/test_basic.py | 0 .../rest_api_design/README.md | 0 .../rest_api_design/examples/example_basic.py | 0 .../rest_api_design/exercise/exercise_01.py | 0 .../rest_api_design/references/links.md | 0 .../rest_api_design/tests/test_basic.py | 0 .../sqlalchemy_2_intro/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../sqlalchemy_2_intro/references/links.md | 0 .../sqlalchemy_2_intro/tests/test_basic.py | 0 .../sqlalchemy_async/README.md | 0 .../examples/example_basic.py | 0 .../sqlalchemy_async/exercise/exercise_01.py | 0 .../sqlalchemy_async/references/links.md | 0 .../sqlalchemy_async/tests/test_basic.py | 0 .../structured_logging/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../structured_logging/references/links.md | 0 .../structured_logging/tests/test_basic.py | 0 .../01_pyo3_introduction/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../01_pyo3_introduction/references/links.md | 0 .../01_pyo3_introduction/tests/test_basic.py | 0 .../02_rust_toolchain_maturin/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../03_first_rust_python_module/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../04_python_types_in_rust/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../05_error_handling_pyresult/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../06_automatic_conversions/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../07_python_classes_in_rust/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../08_pymethods/README.md | 0 .../08_pymethods/examples/example_basic.py | 0 .../08_pymethods/exercise/exercise_01.py | 0 .../08_pymethods/references/links.md | 0 .../08_pymethods/tests/test_basic.py | 0 .../09_properties_rust/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../09_properties_rust/references/links.md | 0 .../09_properties_rust/tests/test_basic.py | 0 .../10_static_class_methods/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../11_operator_overloading/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../12_python_modules/README.md | 0 .../examples/example_basic.py | 0 .../12_python_modules/exercise/exercise_01.py | 0 .../12_python_modules/references/links.md | 0 .../12_python_modules/tests/test_basic.py | 0 .../13_gil_management/README.md | 0 .../examples/example_basic.py | 0 .../13_gil_management/exercise/exercise_01.py | 0 .../13_gil_management/references/links.md | 0 .../13_gil_management/tests/test_basic.py | 0 .../14_shared_mutable_state/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../15_async_rust_pyo3/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../15_async_rust_pyo3/references/links.md | 0 .../15_async_rust_pyo3/tests/test_basic.py | 0 .../16_numpy_arrays_zerocopy/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../17_python_callbacks_from_rust/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../18_performance_optimization/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../19_high_performance_parser/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../20_image_processing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../20_image_processing/references/links.md | 0 .../20_image_processing/tests/test_basic.py | 0 .../21_cryptography_hashing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../22_parallel_data_processing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../23_embeddings_vector_stores/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../24_streaming_llm_responses/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../25_structured_output_pydantic/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../26_code_prompt_engineering/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../27_function_calling_tools/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../28_langchain_basics/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../28_langchain_basics/references/links.md | 0 .../28_langchain_basics/tests/test_basic.py | 0 .../29_langchain_chains/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../29_langchain_chains/references/links.md | 0 .../29_langchain_chains/tests/test_basic.py | 0 .../30_rag_retrieval_augmented/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../31_memory_systems/README.md | 0 .../examples/example_basic.py | 0 .../31_memory_systems/exercise/exercise_01.py | 0 .../31_memory_systems/references/links.md | 0 .../31_memory_systems/tests/test_basic.py | 0 .../32_document_loaders/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../32_document_loaders/references/links.md | 0 .../32_document_loaders/tests/test_basic.py | 0 .../33_text_splitters/README.md | 0 .../examples/example_basic.py | 0 .../33_text_splitters/exercise/exercise_01.py | 0 .../33_text_splitters/references/links.md | 0 .../33_text_splitters/tests/test_basic.py | 0 .../34_vector_stores_chromadb/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../35_langgraph_intro/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../35_langgraph_intro/references/links.md | 0 .../35_langgraph_intro/tests/test_basic.py | 0 .../36_graphs_vs_chains/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../36_graphs_vs_chains/references/links.md | 0 .../36_graphs_vs_chains/tests/test_basic.py | 0 .../37_nodes_edges/README.md | 0 .../37_nodes_edges/examples/example_basic.py | 0 .../37_nodes_edges/exercise/exercise_01.py | 0 .../37_nodes_edges/references/links.md | 0 .../37_nodes_edges/tests/test_basic.py | 0 .../38_state_management/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../38_state_management/references/links.md | 0 .../38_state_management/tests/test_basic.py | 0 .../39_conditional_routing/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../40_human_in_loop/README.md | 0 .../examples/example_basic.py | 0 .../40_human_in_loop/exercise/exercise_01.py | 0 .../40_human_in_loop/references/links.md | 0 .../40_human_in_loop/tests/test_basic.py | 0 .../41_react_pattern/README.md | 0 .../examples/example_basic.py | 0 .../41_react_pattern/exercise/exercise_01.py | 0 .../41_react_pattern/references/links.md | 0 .../41_react_pattern/tests/test_basic.py | 0 .../42_agent_executors/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../42_agent_executors/references/links.md | 0 .../42_agent_executors/tests/test_basic.py | 0 .../43_multi_agent_systems/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../44_testing_llm_systems/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../45_cost_tracking/README.md | 0 .../examples/example_basic.py | 0 .../45_cost_tracking/exercise/exercise_01.py | 0 .../45_cost_tracking/references/links.md | 0 .../45_cost_tracking/tests/test_basic.py | 0 .../14_advanced_python_2026}/README.md | 0 .../15_basic_data_science}/README.md | 0 .../data_cleaning/README.md | 0 .../data_cleaning/examples/example_basic.py | 0 .../data_cleaning/exercise/exercise_01.py | 0 .../data_cleaning/references/links.md | 0 .../data_cleaning/tests/test_basic.py | 0 .../exploratory_analysis/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../exploratory_analysis/references/links.md | 0 .../exploratory_analysis/tests/test_basic.py | 0 .../jupyter_notebooks_optional/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../matplotlib_basics/README.md | 0 .../examples/example_basic.py | 0 .../matplotlib_basics/exercise/exercise_01.py | 0 .../matplotlib_basics/references/links.md | 0 .../matplotlib_basics/tests/test_basic.py | 0 .../numpy_basics/README.md | 0 .../numpy_basics/examples/example_basic.py | 0 .../numpy_basics/exercise/exercise_01.py | 0 .../numpy_basics/references/links.md | 0 .../numpy_basics/tests/test_basic.py | 0 .../pandas_intro/README.md | 0 .../pandas_intro/examples/example_basic.py | 0 .../pandas_intro/exercise/exercise_01.py | 0 .../pandas_intro/references/links.md | 0 .../pandas_intro/tests/test_basic.py | 0 .../pandas_operations/README.md | 0 .../examples/example_basic.py | 0 .../pandas_operations/exercise/exercise_01.py | 0 .../pandas_operations/references/links.md | 0 .../pandas_operations/tests/test_basic.py | 0 .../pandas_performance/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../pandas_performance/references/links.md | 0 .../pandas_performance/tests/test_basic.py | 0 .../polars_intro/README.md | 0 .../polars_intro/examples/example_basic.py | 0 .../polars_intro/exercise/exercise_01.py | 0 .../polars_intro/references/links.md | 0 .../polars_intro/tests/test_basic.py | 0 .../seaborn_viz/README.md | 0 .../seaborn_viz/examples/example_basic.py | 0 .../seaborn_viz/exercise/exercise_01.py | 0 .../seaborn_viz/references/links.md | 0 .../seaborn_viz/tests/test_basic.py | 0 .../01_supply_chain_security/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../02_dependency_attacks/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../02_dependency_attacks/references/links.md | 0 .../02_dependency_attacks/tests/test_basic.py | 0 .../03_typosquatting_pypi/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../03_typosquatting_pypi/references/links.md | 0 .../03_typosquatting_pypi/tests/test_basic.py | 0 .../04_malicious_packages/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../04_malicious_packages/references/links.md | 0 .../04_malicious_packages/tests/test_basic.py | 0 .../05_sbom_introduction/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../05_sbom_introduction/references/links.md | 0 .../05_sbom_introduction/tests/test_basic.py | 0 .../06_sbom_formats_spdx_cyclonedx/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../07_sbom_generation_syft/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../08_sbom_vulnerability_analysis/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../09_sbom_ci_cd/README.md | 0 .../09_sbom_ci_cd/examples/example_basic.py | 0 .../09_sbom_ci_cd/exercise/exercise_01.py | 0 .../09_sbom_ci_cd/references/links.md | 0 .../09_sbom_ci_cd/tests/test_basic.py | 0 .../10_sbom_signing/README.md | 0 .../10_sbom_signing/examples/example_basic.py | 0 .../10_sbom_signing/exercise/exercise_01.py | 0 .../10_sbom_signing/references/links.md | 0 .../10_sbom_signing/tests/test_basic.py | 0 .../11_sigstore_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../12_keyless_signing_oidc/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../13_signing_wheels_cosign/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../14_signing_containers/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../14_signing_containers/references/links.md | 0 .../14_signing_containers/tests/test_basic.py | 0 .../15_signature_verification/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../16_transparency_logs_rekor/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../18_trivy_containers/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../18_trivy_containers/references/links.md | 0 .../18_trivy_containers/tests/test_basic.py | 0 .../19_grype_scanning/README.md | 0 .../examples/example_basic.py | 0 .../19_grype_scanning/exercise/exercise_01.py | 0 .../19_grype_scanning/references/links.md | 0 .../19_grype_scanning/tests/test_basic.py | 0 .../20_dependabot_github/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../20_dependabot_github/references/links.md | 0 .../20_dependabot_github/tests/test_basic.py | 0 .../21_automated_patching/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../21_automated_patching/references/links.md | 0 .../21_automated_patching/tests/test_basic.py | 0 .../22_secrets_management_intro/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../23_environment_variables/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../24_secrets_ci_cd/README.md | 0 .../examples/example_basic.py | 0 .../24_secrets_ci_cd/exercise/exercise_01.py | 0 .../24_secrets_ci_cd/references/links.md | 0 .../24_secrets_ci_cd/tests/test_basic.py | 0 .../25_sops_introduction/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../25_sops_introduction/references/links.md | 0 .../25_sops_introduction/tests/test_basic.py | 0 .../26_sops_backends_age_kms/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../27_sops_yaml_json/README.md | 0 .../examples/example_basic.py | 0 .../27_sops_yaml_json/exercise/exercise_01.py | 0 .../27_sops_yaml_json/references/links.md | 0 .../27_sops_yaml_json/tests/test_basic.py | 0 .../28_sops_git_integration/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../29_key_rotation_sops/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../29_key_rotation_sops/references/links.md | 0 .../29_key_rotation_sops/tests/test_basic.py | 0 .../30_vault_architecture/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../30_vault_architecture/references/links.md | 0 .../30_vault_architecture/tests/test_basic.py | 0 .../31_dynamic_secrets_vault/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../32_vault_agents/README.md | 0 .../32_vault_agents/examples/example_basic.py | 0 .../32_vault_agents/exercise/exercise_01.py | 0 .../32_vault_agents/references/links.md | 0 .../32_vault_agents/tests/test_basic.py | 0 .../33_vault_python_hvac/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../33_vault_python_hvac/references/links.md | 0 .../33_vault_python_hvac/tests/test_basic.py | 0 .../34_vault_kubernetes/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../34_vault_kubernetes/references/links.md | 0 .../34_vault_kubernetes/tests/test_basic.py | 0 .../35_kubernetes_secrets/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../35_kubernetes_secrets/references/links.md | 0 .../35_kubernetes_secrets/tests/test_basic.py | 0 .../36_external_secrets_operator/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../37_sealed_secrets/README.md | 0 .../examples/example_basic.py | 0 .../37_sealed_secrets/exercise/exercise_01.py | 0 .../37_sealed_secrets/references/links.md | 0 .../37_sealed_secrets/tests/test_basic.py | 0 .../38_input_validation/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../38_input_validation/references/links.md | 0 .../38_input_validation/tests/test_basic.py | 0 .../39_sql_injection_prevention/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 .../40_xss_csrf_prevention/README.md | 0 .../examples/example_basic.py | 0 .../exercise/exercise_01.py | 0 .../references/links.md | 0 .../tests/test_basic.py | 0 scripts/audit_nan_modules.py | 3 +- scripts/generate_structure.py | 2 +- scripts/link_check.py | 3 +- scripts/progress.py | 2 +- scripts/run_topic_tests.py | 8 ++- scripts/validate_all_modules.py | 3 +- scripts/validate_nan_language.py | 2 +- 2197 files changed, 47 insertions(+), 40 deletions(-) rename {01_python_fundamentals => modules/01_python_fundamentals}/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/advanced_strings/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/advanced_strings/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/advanced_strings/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/advanced_strings/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/advanced_strings/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_debugging_optional/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_debugging_optional/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_debugging_optional/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_debugging_optional/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_debugging_optional/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_error_handling/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_error_handling/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_error_handling/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_error_handling/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_error_handling/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_functions/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_functions/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_functions/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_functions/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/basic_functions/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/comprehensions/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/comprehensions/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/comprehensions/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/comprehensions/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/comprehensions/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/control_structures/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/control_structures/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/control_structures/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/control_structures/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/control_structures/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/dictionaries_sets/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/dictionaries_sets/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/dictionaries_sets/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/dictionaries_sets/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/dictionaries_sets/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/input_output_optional/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/input_output_optional/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/input_output_optional/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/input_output_optional/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/input_output_optional/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/lists_tuples/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/lists_tuples/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/lists_tuples/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/lists_tuples/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/lists_tuples/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/module_imports/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/module_imports/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/module_imports/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/module_imports/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/module_imports/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/operators_expressions_optional/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/operators_expressions_optional/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/operators_expressions_optional/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/operators_expressions_optional/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/operators_expressions_optional/tests/test_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/variables_data_types_optional/README.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/variables_data_types_optional/examples/example_basic.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/variables_data_types_optional/exercise/exercise_01.py (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/variables_data_types_optional/references/links.md (100%) rename {01_python_fundamentals => modules/01_python_fundamentals}/variables_data_types_optional/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/advanced_functions/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/advanced_functions/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/advanced_functions/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/advanced_functions/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/advanced_functions/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_context_managers/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_context_managers/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_context_managers/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_context_managers/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_context_managers/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_decorators/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_decorators/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_decorators/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_decorators/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_decorators/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_iterators/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_iterators/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_iterators/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_iterators/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/basic_iterators/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/closures/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/closures/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/closures/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/closures/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/closures/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/collections_module/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/collections_module/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/collections_module/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/collections_module/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/collections_module/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/csv_json/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/csv_json/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/csv_json/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/csv_json/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/csv_json/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/datetime_time/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/datetime_time/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/datetime_time/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/datetime_time/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/datetime_time/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/exception_handling/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/exception_handling/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/exception_handling/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/exception_handling/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/exception_handling/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/generators/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/generators/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/generators/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/generators/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/generators/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/itertools/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/itertools/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/itertools/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/itertools/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/itertools/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/modules_packages/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/modules_packages/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/modules_packages/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/modules_packages/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/modules_packages/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/pathlib/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/pathlib/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/pathlib/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/pathlib/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/pathlib/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/regex_optional/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/regex_optional/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/regex_optional/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/regex_optional/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/regex_optional/tests/test_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/text_file_handling/README.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/text_file_handling/examples/example_basic.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/text_file_handling/exercise/exercise_01.py (100%) rename {02_intermediate_python => modules/02_intermediate_python}/text_file_handling/references/links.md (100%) rename {02_intermediate_python => modules/02_intermediate_python}/text_file_handling/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/attributes_methods/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/attributes_methods/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/attributes_methods/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/attributes_methods/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/attributes_methods/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_descriptors/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_descriptors/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_descriptors/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_descriptors/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_descriptors/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_inheritance/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_inheritance/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_inheritance/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_inheritance/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/basic_inheritance/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/classes_objects/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/classes_objects/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/classes_objects/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/classes_objects/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/classes_objects/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/composition_vs_inheritance/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/composition_vs_inheritance/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/composition_vs_inheritance/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/composition_vs_inheritance/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/composition_vs_inheritance/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/dataclasses_optional/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/dataclasses_optional/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/dataclasses_optional/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/dataclasses_optional/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/dataclasses_optional/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/encapsulation/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/encapsulation/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/encapsulation/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/encapsulation/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/encapsulation/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/init_self/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/init_self/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/init_self/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/init_self/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/init_self/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/multiple_inheritance/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/multiple_inheritance/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/multiple_inheritance/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/multiple_inheritance/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/multiple_inheritance/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/polymorphism/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/polymorphism/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/polymorphism/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/polymorphism/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/polymorphism/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/properties/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/properties/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/properties/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/properties/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/properties/tests/test_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/special_methods/README.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/special_methods/examples/example_basic.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/special_methods/exercise/exercise_01.py (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/special_methods/references/links.md (100%) rename {03_basic_intermediate_oop => modules/03_basic_intermediate_oop}/special_methods/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/examples/gil_demonstration.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/examples/gil_vs_multiprocessing.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/exercise/advanced_exercise.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/exercise/basic_exercise.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/exercise/intermediate_exercise.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/tests/test_advanced.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/01_gil_history/tests/test_intermediate.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/examples/gil_contention_viz.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/02_gil_limitations/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/03_pep_703_free_threading/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/03_pep_703_free_threading/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/03_pep_703_free_threading/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/03_pep_703_free_threading/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/03_pep_703_free_threading/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/04_free_threading_activation/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/04_free_threading_activation/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/04_free_threading_activation/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/04_free_threading_activation/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/04_free_threading_activation/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/05_gil_free_architecture/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/05_gil_free_architecture/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/05_gil_free_architecture/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/05_gil_free_architecture/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/05_gil_free_architecture/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/06_biased_reference_counting/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/06_biased_reference_counting/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/06_biased_reference_counting/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/06_biased_reference_counting/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/06_biased_reference_counting/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/07_gc_thread_safe/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/07_gc_thread_safe/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/07_gc_thread_safe/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/07_gc_thread_safe/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/07_gc_thread_safe/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/08_performance_benchmarks/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/08_performance_benchmarks/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/08_performance_benchmarks/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/08_performance_benchmarks/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/08_performance_benchmarks/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/09_c_extensions_compatibility/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/09_c_extensions_compatibility/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/09_c_extensions_compatibility/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/09_c_extensions_compatibility/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/09_c_extensions_compatibility/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/10_subinterpreters_intro/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/10_subinterpreters_intro/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/10_subinterpreters_intro/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/10_subinterpreters_intro/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/10_subinterpreters_intro/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/11_api_c_subinterpreters/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/11_api_c_subinterpreters/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/11_api_c_subinterpreters/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/11_api_c_subinterpreters/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/11_api_c_subinterpreters/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/12_api_python_subinterpreters/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/12_api_python_subinterpreters/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/12_api_python_subinterpreters/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/12_api_python_subinterpreters/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/12_api_python_subinterpreters/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/13_per_interpreter_gil/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/13_per_interpreter_gil/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/13_per_interpreter_gil/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/13_per_interpreter_gil/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/13_per_interpreter_gil/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/14_memory_isolation/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/14_memory_isolation/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/14_memory_isolation/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/14_memory_isolation/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/14_memory_isolation/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/15_communication_channels/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/15_communication_channels/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/15_communication_channels/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/15_communication_channels/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/15_communication_channels/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/16_atomic_operations/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/16_atomic_operations/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/16_atomic_operations/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/16_atomic_operations/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/16_atomic_operations/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/17_data_races/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/17_data_races/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/17_data_races/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/17_data_races/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/17_data_races/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/18_locks_synchronization/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/18_locks_synchronization/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/18_locks_synchronization/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/18_locks_synchronization/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/18_locks_synchronization/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/19_threading_local/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/19_threading_local/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/19_threading_local/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/19_threading_local/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/19_threading_local/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/20_thread_safe_structures/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/20_thread_safe_structures/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/20_thread_safe_structures/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/20_thread_safe_structures/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/20_thread_safe_structures/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/21_pyobject_structure/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/21_pyobject_structure/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/21_pyobject_structure/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/21_pyobject_structure/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/21_pyobject_structure/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/22_reference_counting/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/22_reference_counting/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/22_reference_counting/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/22_reference_counting/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/22_reference_counting/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/23_immortal_objects/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/23_immortal_objects/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/23_immortal_objects/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/23_immortal_objects/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/23_immortal_objects/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/24_caching_interning/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/24_caching_interning/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/24_caching_interning/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/24_caching_interning/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/24_caching_interning/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/25_memory_layout/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/25_memory_layout/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/25_memory_layout/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/25_memory_layout/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/25_memory_layout/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/26_migration_strategies/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/26_migration_strategies/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/26_migration_strategies/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/26_migration_strategies/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/26_migration_strategies/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/27_testing_thread_safety/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/27_testing_thread_safety/examples/example_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/27_testing_thread_safety/exercise/exercise_01.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/27_testing_thread_safety/references/links.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/27_testing_thread_safety/tests/test_basic.py (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/README.md (100%) rename {04_cpython_internals_advanced => modules/04_cpython_internals_advanced}/create_templates.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/actor_model/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/actor_model/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/actor_model/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/actor_model/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/actor_model/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/aiohttp_httpx/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/aiohttp_httpx/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/aiohttp_httpx/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/aiohttp_httpx/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/aiohttp_httpx/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_debugging/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_debugging/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_debugging/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_debugging/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_debugging/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_fundamentals/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_fundamentals/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_fundamentals/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_fundamentals/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_fundamentals/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_patterns/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_patterns/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_patterns/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_patterns/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_patterns/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_streams/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_streams/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_streams/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_streams/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/asyncio_streams/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/barriers_events/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/barriers_events/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/barriers_events/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/barriers_events/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/barriers_events/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_multiprocessing/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_multiprocessing/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_multiprocessing/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_multiprocessing/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_multiprocessing/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_threading/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_threading/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_threading/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_threading/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/basic_threading/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/concurrency_models/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/concurrency_models/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/concurrency_models/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/concurrency_models/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/concurrency_models/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/coroutines_async_await/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/coroutines_async_await/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/coroutines_async_await/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/coroutines_async_await/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/coroutines_async_await/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/event_loop_internals/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/event_loop_internals/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/event_loop_internals/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/event_loop_internals/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/event_loop_internals/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/locks_semaphores/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/locks_semaphores/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/locks_semaphores/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/locks_semaphores/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/locks_semaphores/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/map_reduce/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/map_reduce/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/map_reduce/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/map_reduce/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/map_reduce/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/parallel_pipeline/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/parallel_pipeline/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/parallel_pipeline/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/parallel_pipeline/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/parallel_pipeline/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/process_pools/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/process_pools/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/process_pools/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/process_pools/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/process_pools/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/producer_consumer/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/producer_consumer/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/producer_consumer/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/producer_consumer/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/producer_consumer/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/profiling_concurrent/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/profiling_concurrent/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/profiling_concurrent/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/profiling_concurrent/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/profiling_concurrent/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/race_detection/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/race_detection/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/race_detection/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/race_detection/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/race_detection/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/shared_memory/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/shared_memory/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/shared_memory/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/shared_memory/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/shared_memory/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_communication/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_communication/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_communication/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_communication/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_communication/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_usage/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_usage/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_usage/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_usage/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/subinterpreters_usage/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/taskgroups/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/taskgroups/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/taskgroups/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/taskgroups/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/taskgroups/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/thread_pools/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/thread_pools/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/thread_pools/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/thread_pools/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/thread_pools/tests/test_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/threading_freethreading/README.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/threading_freethreading/examples/example_basic.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/threading_freethreading/exercise/exercise_01.py (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/threading_freethreading/references/links.md (100%) rename {05_modern_concurrency => modules/05_modern_concurrency}/threading_freethreading/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/abstract_base_classes/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/abstract_base_classes/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/abstract_base_classes/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/abstract_base_classes/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/abstract_base_classes/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_descriptors/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_descriptors/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_descriptors/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_descriptors/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_descriptors/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_metaclasses/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_metaclasses/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_metaclasses/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_metaclasses/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_metaclasses/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_typing/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_typing/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_typing/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_typing/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/advanced_typing/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_basics/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_basics/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_basics/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_basics/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_basics/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_manipulation/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_manipulation/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_manipulation/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_manipulation/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/ast_manipulation/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_mypy/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_mypy/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_mypy/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_mypy/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_mypy/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/examples/advanced_patterns.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/examples/basic_annotations.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/exercise/advanced_exercise.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/exercise/basic_exercise.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/exercise/intermediate_exercise.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/tests/test_advanced.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/basic_type_hints/tests/test_intermediate.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/class_decorators/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/class_decorators/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/class_decorators/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/class_decorators/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/class_decorators/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/dynamic_classes/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/dynamic_classes/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/dynamic_classes/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/dynamic_classes/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/dynamic_classes/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/exec_eval_compile/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/exec_eval_compile/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/exec_eval_compile/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/exec_eval_compile/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/exec_eval_compile/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/generics_typevar/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/generics_typevar/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/generics_typevar/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/generics_typevar/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/generics_typevar/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/init_subclass/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/init_subclass/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/init_subclass/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/init_subclass/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/init_subclass/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/introspection_inspect/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/introspection_inspect/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/introspection_inspect/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/introspection_inspect/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/introspection_inspect/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/literal_types/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/literal_types/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/literal_types/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/literal_types/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/literal_types/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/metaclasses_intro/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/metaclasses_intro/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/metaclasses_intro/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/metaclasses_intro/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/metaclasses_intro/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/overload/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/overload/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/overload/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/overload/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/overload/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/protocol_structural_typing/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/protocol_structural_typing/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/protocol_structural_typing/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/protocol_structural_typing/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/protocol_structural_typing/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/runtime_type_checking/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/runtime_type_checking/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/runtime_type_checking/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/runtime_type_checking/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/runtime_type_checking/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/set_name_descriptor/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/set_name_descriptor/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/set_name_descriptor/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/set_name_descriptor/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/set_name_descriptor/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/typeddict_namedtuple/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/typeddict_namedtuple/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/typeddict_namedtuple/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/typeddict_namedtuple/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/typeddict_namedtuple/tests/test_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/union_optional/README.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/union_optional/examples/example_basic.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/union_optional/exercise/exercise_01.py (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/union_optional/references/links.md (100%) rename {06_typing_metaprogramming => modules/06_typing_metaprogramming}/union_optional/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/adapter/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/adapter/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/adapter/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/adapter/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/adapter/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/builder/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/builder/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/builder/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/builder/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/builder/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/command/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/command/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/command/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/command/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/command/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/decorator_pattern/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/decorator_pattern/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/decorator_pattern/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/decorator_pattern/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/decorator_pattern/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/facade/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/facade/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/facade/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/facade/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/facade/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/factory_method/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/factory_method/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/factory_method/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/factory_method/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/factory_method/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/iterator/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/iterator/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/iterator/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/iterator/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/iterator/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/observer/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/observer/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/observer/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/observer/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/observer/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/singleton/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/singleton/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/singleton/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/singleton/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/singleton/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/strategy/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/strategy/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/strategy/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/strategy/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/strategy/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/template_method/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/template_method/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/template_method/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/template_method/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/01_basic_gof/template_method/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/borg_monostate/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/borg_monostate/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/borg_monostate/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/borg_monostate/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/borg_monostate/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/context_manager/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/context_manager/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/context_manager/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/context_manager/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/context_manager/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/coroutine/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/coroutine/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/coroutine/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/coroutine/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/coroutine/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/dataclass/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/dataclass/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/dataclass/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/dataclass/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/dataclass/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/decorator_funcion/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/decorator_funcion/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/decorator_funcion/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/decorator_funcion/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/decorator_funcion/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/descriptor/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/descriptor/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/descriptor/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/descriptor/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/descriptor/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/generator/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/generator/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/generator/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/generator/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/generator/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/lazy_property/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/lazy_property/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/lazy_property/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/lazy_property/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/lazy_property/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/mixin/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/mixin/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/mixin/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/mixin/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/mixin/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/plugin_system/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/plugin_system/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/plugin_system/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/plugin_system/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/plugin_system/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/property/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/property/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/property/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/property/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/property/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/protocol/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/protocol/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/protocol/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/protocol/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/protocol/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/registry/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/registry/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/registry/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/registry/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/registry/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/sentinel/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/sentinel/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/sentinel/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/sentinel/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/02_pythonic_patterns/sentinel/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/abstract_factory/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/abstract_factory/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/abstract_factory/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/abstract_factory/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/abstract_factory/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/bridge/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/bridge/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/bridge/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/bridge/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/bridge/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/chain_of_responsibility/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/chain_of_responsibility/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/chain_of_responsibility/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/chain_of_responsibility/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/chain_of_responsibility/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/composite/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/composite/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/composite/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/composite/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/composite/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/flyweight/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/flyweight/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/flyweight/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/flyweight/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/flyweight/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/interpreter/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/interpreter/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/interpreter/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/interpreter/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/interpreter/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/mediator/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/mediator/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/mediator/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/mediator/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/mediator/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/memento/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/memento/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/memento/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/memento/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/memento/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/prototype/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/prototype/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/prototype/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/prototype/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/prototype/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/proxy/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/proxy/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/proxy/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/proxy/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/proxy/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/state/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/state/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/state/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/state/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/state/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/visitor/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/visitor/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/visitor/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/visitor/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/03_advanced_gof/visitor/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/active_record/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/active_record/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/active_record/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/active_record/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/active_record/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/api_gateway/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/api_gateway/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/api_gateway/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/api_gateway/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/api_gateway/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/clean_architecture/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/clean_architecture/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/clean_architecture/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/clean_architecture/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/clean_architecture/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/data_mapper/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/data_mapper/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/data_mapper/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/data_mapper/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/data_mapper/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/dependency_injection/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/dependency_injection/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/dependency_injection/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/dependency_injection/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/dependency_injection/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/domain_model/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/domain_model/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/domain_model/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/domain_model/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/domain_model/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/hexagonal_architecture/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/hexagonal_architecture/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/hexagonal_architecture/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/hexagonal_architecture/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/hexagonal_architecture/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvc/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvc/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvc/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvc/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvc/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvp/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvp/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvp/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvp/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvp/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvvm/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvvm/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvvm/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvvm/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/mvvm/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/repository/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/repository/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/repository/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/repository/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/repository/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/service_layer/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/service_layer/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/service_layer/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/service_layer/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/service_layer/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/unit_of_work/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/unit_of_work/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/unit_of_work/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/unit_of_work/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/04_architectural/unit_of_work/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/backend_for_frontend/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/backend_for_frontend/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/backend_for_frontend/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/backend_for_frontend/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/backend_for_frontend/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/bulkhead/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/bulkhead/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/bulkhead/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/bulkhead/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/bulkhead/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cache_aside/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cache_aside/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cache_aside/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cache_aside/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cache_aside/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/circuit_breaker/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/circuit_breaker/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/circuit_breaker/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/circuit_breaker/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/circuit_breaker/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cqrs/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cqrs/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cqrs/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cqrs/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/cqrs/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_driven/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_driven/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_driven/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_driven/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_driven/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_sourcing/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_sourcing/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_sourcing/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_sourcing/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/event_sourcing/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/rate_limiter/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/rate_limiter/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/rate_limiter/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/rate_limiter/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/rate_limiter/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/retry_pattern/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/retry_pattern/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/retry_pattern/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/retry_pattern/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/retry_pattern/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/saga/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/saga/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/saga/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/saga/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/saga/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/sidecar/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/sidecar/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/sidecar/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/sidecar/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/sidecar/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/timeout/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/timeout/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/timeout/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/timeout/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/05_distributed_systems/timeout/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/active_object/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/active_object/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/active_object/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/active_object/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/active_object/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/barrier_pattern/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/barrier_pattern/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/barrier_pattern/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/barrier_pattern/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/barrier_pattern/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/double_checked_locking/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/double_checked_locking/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/double_checked_locking/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/double_checked_locking/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/double_checked_locking/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/future_promise/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/future_promise/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/future_promise/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/future_promise/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/future_promise/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/half_sync_half_async/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/half_sync_half_async/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/half_sync_half_async/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/half_sync_half_async/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/half_sync_half_async/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/leader_followers/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/leader_followers/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/leader_followers/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/leader_followers/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/leader_followers/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/monitor_object/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/monitor_object/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/monitor_object/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/monitor_object/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/monitor_object/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/proactor/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/proactor/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/proactor/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/proactor/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/proactor/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/producer_consumer/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/producer_consumer/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/producer_consumer/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/producer_consumer/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/producer_consumer/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/reactor/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/reactor/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/reactor/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/reactor/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/reactor/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/read_write_lock/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/read_write_lock/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/read_write_lock/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/read_write_lock/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/read_write_lock/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/scheduler/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/scheduler/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/scheduler/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/scheduler/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/scheduler/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_pool/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_pool/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_pool/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_pool/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_pool/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_specific_storage/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_specific_storage/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_specific_storage/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_specific_storage/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/06_concurrency/thread_specific_storage/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/event_bus/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/event_bus/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/event_bus/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/event_bus/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/event_bus/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/message_queue/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/message_queue/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/message_queue/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/message_queue/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/message_queue/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/publish_subscribe/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/publish_subscribe/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/publish_subscribe/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/publish_subscribe/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/publish_subscribe/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/request_reply/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/request_reply/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/request_reply/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/request_reply/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/07_messaging/request_reply/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/aggregate/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/aggregate/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/aggregate/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/aggregate/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/aggregate/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/eager_initialization/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/eager_initialization/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/eager_initialization/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/eager_initialization/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/eager_initialization/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/entity/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/entity/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/entity/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/entity/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/entity/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/lazy_initialization/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/lazy_initialization/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/lazy_initialization/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/lazy_initialization/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/lazy_initialization/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/multiton/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/multiton/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/multiton/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/multiton/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/multiton/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/null_object/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/null_object/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/null_object/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/null_object/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/null_object/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/object_pool/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/object_pool/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/object_pool/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/object_pool/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/object_pool/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/value_object/README.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/value_object/examples/example_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/value_object/exercise/exercise_01.py (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/value_object/references/links.md (100%) rename {07_design_patterns => modules/07_design_patterns}/08_object_management/value_object/tests/test_basic.py (100%) rename {07_design_patterns => modules/07_design_patterns}/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/cqrs_pattern/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/cqrs_pattern/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/cqrs_pattern/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/cqrs_pattern/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/cqrs_pattern/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ddd_intro/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/ddd_intro/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ddd_intro/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ddd_intro/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/ddd_intro/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_injection/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_injection/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_injection/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_injection/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_injection/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_inversion/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_inversion/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_inversion/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_inversion/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/dependency_inversion/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/entities_value_objects/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/entities_value_objects/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/entities_value_objects/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/entities_value_objects/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/entities_value_objects/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/event_driven_arch/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/event_driven_arch/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/event_driven_arch/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/event_driven_arch/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/event_driven_arch/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/hexagonal_architecture/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/hexagonal_architecture/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/hexagonal_architecture/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/hexagonal_architecture/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/hexagonal_architecture/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/interface_segregation/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/interface_segregation/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/interface_segregation/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/interface_segregation/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/interface_segregation/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/inversion_control/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/inversion_control/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/inversion_control/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/inversion_control/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/inversion_control/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/liskov_substitution/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/liskov_substitution/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/liskov_substitution/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/liskov_substitution/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/liskov_substitution/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/observability/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/observability/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/observability/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/observability/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/observability/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/open_closed/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/open_closed/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/open_closed/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/open_closed/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/open_closed/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ports_adapters/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/ports_adapters/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ports_adapters/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/ports_adapters/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/ports_adapters/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/repositories/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/repositories/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/repositories/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/repositories/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/repositories/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/services_uow/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/services_uow/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/services_uow/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/services_uow/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/services_uow/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/single_responsibility/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/single_responsibility/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/single_responsibility/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/single_responsibility/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/single_responsibility/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/solid_principles/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/solid_principles/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/solid_principles/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/solid_principles/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/solid_principles/tests/test_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/structured_logging/README.md (100%) rename {08_application_architecture => modules/08_application_architecture}/structured_logging/examples/example_basic.py (100%) rename {08_application_architecture => modules/08_application_architecture}/structured_logging/exercise/exercise_01.py (100%) rename {08_application_architecture => modules/08_application_architecture}/structured_logging/references/links.md (100%) rename {08_application_architecture => modules/08_application_architecture}/structured_logging/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/bdd_behave_optional/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/bdd_behave_optional/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/bdd_behave_optional/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/bdd_behave_optional/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/bdd_behave_optional/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/ci_testing/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/ci_testing/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/ci_testing/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/ci_testing/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/ci_testing/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/contract_testing/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/contract_testing/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/contract_testing/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/contract_testing/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/contract_testing/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/coverage_analysis/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/coverage_analysis/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/coverage_analysis/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/coverage_analysis/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/coverage_analysis/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/fixtures/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/fixtures/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/fixtures/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/fixtures/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/fixtures/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/hypothesis_intro/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/hypothesis_intro/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/hypothesis_intro/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/hypothesis_intro/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/hypothesis_intro/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/integration_testing/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/integration_testing/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/integration_testing/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/integration_testing/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/integration_testing/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mocking_unittest/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/mocking_unittest/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mocking_unittest/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mocking_unittest/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/mocking_unittest/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mutation_testing/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/mutation_testing/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mutation_testing/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/mutation_testing/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/mutation_testing/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/parametrize/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/parametrize/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/parametrize/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/parametrize/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/parametrize/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/property_based_testing/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/property_based_testing/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/property_based_testing/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/property_based_testing/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/property_based_testing/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_asyncio/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_asyncio/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_asyncio/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_asyncio/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_asyncio/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_basics/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_basics/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_basics/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_basics/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_basics/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_mock/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_mock/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_mock/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_mock/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/pytest_mock/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/tdd_basics/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/tdd_basics/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/tdd_basics/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/tdd_basics/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/tdd_basics/tests/test_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/test_organization/README.md (100%) rename {09_testing_qa => modules/09_testing_qa}/test_organization/examples/example_basic.py (100%) rename {09_testing_qa => modules/09_testing_qa}/test_organization/exercise/exercise_01.py (100%) rename {09_testing_qa => modules/09_testing_qa}/test_organization/references/links.md (100%) rename {09_testing_qa => modules/09_testing_qa}/test_organization/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/algorithmic_complexity/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/algorithmic_complexity/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/algorithmic_complexity/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/algorithmic_complexity/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/algorithmic_complexity/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/benchmarking_timeit/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/benchmarking_timeit/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/benchmarking_timeit/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/benchmarking_timeit/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/benchmarking_timeit/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/caching_lru/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/caching_lru/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/caching_lru/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/caching_lru/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/caching_lru/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/cython_basics/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/cython_basics/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/cython_basics/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/cython_basics/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/cython_basics/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/lazy_evaluation/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/lazy_evaluation/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/lazy_evaluation/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/lazy_evaluation/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/lazy_evaluation/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/line_profiler/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/line_profiler/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/line_profiler/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/line_profiler/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/line_profiler/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/memory_optimization/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/memory_optimization/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/memory_optimization/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/memory_optimization/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/memory_optimization/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numba_jit/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numba_jit/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numba_jit/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numba_jit/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numba_jit/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numpy_vectorization/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numpy_vectorization/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numpy_vectorization/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numpy_vectorization/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/numpy_vectorization/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/optimization_techniques/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/optimization_techniques/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/optimization_techniques/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/optimization_techniques/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/optimization_techniques/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/profiling_cprofile/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/profiling_cprofile/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/profiling_cprofile/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/profiling_cprofile/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/profiling_cprofile/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pypy_intro/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pypy_intro/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pypy_intro/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pypy_intro/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pypy_intro/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pyspy_profiling/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pyspy_profiling/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pyspy_profiling/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pyspy_profiling/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pyspy_profiling/tests/test_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pytest_benchmark/README.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pytest_benchmark/examples/example_basic.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pytest_benchmark/exercise/exercise_01.py (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pytest_benchmark/references/links.md (100%) rename {10_performance_optimization => modules/10_performance_optimization}/pytest_benchmark/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/examples/benchmark_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/exercise/basic_exercise.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/examples/01_speed_comparison.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/examples/02_cache_architecture.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/exercise/exercise_01.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/exercise/exercise_02.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/references/references.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/01_uv_introduction_architecture/tests/test_uv_basics.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/examples/01_installation_verification.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/02_uv_installation_configuration/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/03_uv_pip_package_installation/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/03_uv_pip_package_installation/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/03_uv_pip_package_installation/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/03_uv_pip_package_installation/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/03_uv_pip_package_installation/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/04_uv_venv_virtual_environments/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/04_uv_venv_virtual_environments/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/04_uv_venv_virtual_environments/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/04_uv_venv_virtual_environments/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/04_uv_venv_virtual_environments/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/05_uv_tool_global_tools/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/05_uv_tool_global_tools/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/05_uv_tool_global_tools/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/05_uv_tool_global_tools/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/05_uv_tool_global_tools/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/06_uv_pyproject_toml/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/06_uv_pyproject_toml/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/06_uv_pyproject_toml/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/06_uv_pyproject_toml/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/06_uv_pyproject_toml/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/07_uv_lock_files/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/07_uv_lock_files/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/07_uv_lock_files/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/07_uv_lock_files/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/07_uv_lock_files/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/08_uv_workspaces_monorepos/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/08_uv_workspaces_monorepos/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/08_uv_workspaces_monorepos/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/08_uv_workspaces_monorepos/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/08_uv_workspaces_monorepos/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/09_uv_scripts_entry_points/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/09_uv_scripts_entry_points/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/09_uv_scripts_entry_points/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/09_uv_scripts_entry_points/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/09_uv_scripts_entry_points/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/10_ruff_introduction_speed/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/10_ruff_introduction_speed/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/10_ruff_introduction_speed/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/10_ruff_introduction_speed/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/10_ruff_introduction_speed/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/11_ruff_linter_rules/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/11_ruff_linter_rules/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/11_ruff_linter_rules/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/11_ruff_linter_rules/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/11_ruff_linter_rules/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/12_ruff_formatter_black/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/12_ruff_formatter_black/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/12_ruff_formatter_black/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/12_ruff_formatter_black/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/12_ruff_formatter_black/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/13_ruff_import_sorter_isort/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/13_ruff_import_sorter_isort/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/13_ruff_import_sorter_isort/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/13_ruff_import_sorter_isort/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/13_ruff_import_sorter_isort/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/14_ruff_pyproject_configuration/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/14_ruff_pyproject_configuration/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/14_ruff_pyproject_configuration/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/14_ruff_pyproject_configuration/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/14_ruff_pyproject_configuration/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/15_ruff_strict_rules/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/15_ruff_strict_rules/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/15_ruff_strict_rules/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/15_ruff_strict_rules/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/15_ruff_strict_rules/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/16_ruff_performance_benchmarks/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/16_ruff_performance_benchmarks/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/16_ruff_performance_benchmarks/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/16_ruff_performance_benchmarks/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/16_ruff_performance_benchmarks/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/17_ruff_workflow_integration/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/17_ruff_workflow_integration/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/17_ruff_workflow_integration/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/17_ruff_workflow_integration/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/17_ruff_workflow_integration/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/18_mypy_current_state_2026/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/18_mypy_current_state_2026/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/18_mypy_current_state_2026/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/18_mypy_current_state_2026/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/18_mypy_current_state_2026/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/19_pyright_basedpyright/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/19_pyright_basedpyright/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/19_pyright_basedpyright/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/19_pyright_basedpyright/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/19_pyright_basedpyright/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/20_pylyzer_type_checker_rust/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/20_pylyzer_type_checker_rust/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/20_pylyzer_type_checker_rust/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/20_pylyzer_type_checker_rust/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/20_pylyzer_type_checker_rust/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/21_type_checkers_comparison/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/21_type_checkers_comparison/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/21_type_checkers_comparison/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/21_type_checkers_comparison/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/21_type_checkers_comparison/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/22_strict_typing_configuration/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/22_strict_typing_configuration/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/22_strict_typing_configuration/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/22_strict_typing_configuration/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/22_strict_typing_configuration/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/23_type_narrowing_advanced_guards/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/23_type_narrowing_advanced_guards/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/23_type_narrowing_advanced_guards/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/23_type_narrowing_advanced_guards/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/23_type_narrowing_advanced_guards/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/24_precommit_configuration_hooks/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/24_precommit_configuration_hooks/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/24_precommit_configuration_hooks/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/24_precommit_configuration_hooks/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/24_precommit_configuration_hooks/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/25_precommit_security_hooks/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/25_precommit_security_hooks/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/25_precommit_security_hooks/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/25_precommit_security_hooks/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/25_precommit_security_hooks/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/26_precommit_performance_caching/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/26_precommit_performance_caching/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/26_precommit_performance_caching/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/26_precommit_performance_caching/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/26_precommit_performance_caching/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/27_pytest_advanced_fixtures/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/27_pytest_advanced_fixtures/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/27_pytest_advanced_fixtures/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/27_pytest_advanced_fixtures/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/27_pytest_advanced_fixtures/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/28_pytest_cov_coverage/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/28_pytest_cov_coverage/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/28_pytest_cov_coverage/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/28_pytest_cov_coverage/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/28_pytest_cov_coverage/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/29_pytest_xdist_parallelization/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/29_pytest_xdist_parallelization/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/29_pytest_xdist_parallelization/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/29_pytest_xdist_parallelization/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/29_pytest_xdist_parallelization/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/30_hypothesis_property_testing/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/30_hypothesis_property_testing/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/30_hypothesis_property_testing/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/30_hypothesis_property_testing/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/30_hypothesis_property_testing/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/31_mutation_testing_mutmut/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/31_mutation_testing_mutmut/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/31_mutation_testing_mutmut/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/31_mutation_testing_mutmut/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/31_mutation_testing_mutmut/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/32_pyspy_profiling_without_overhead/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/32_pyspy_profiling_without_overhead/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/32_pyspy_profiling_without_overhead/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/32_pyspy_profiling_without_overhead/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/32_pyspy_profiling_without_overhead/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/33_memray_memory_profiling/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/33_memray_memory_profiling/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/33_memray_memory_profiling/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/33_memray_memory_profiling/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/33_memray_memory_profiling/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/34_viztracer_tracing_visual/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/34_viztracer_tracing_visual/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/34_viztracer_tracing_visual/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/34_viztracer_tracing_visual/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/34_viztracer_tracing_visual/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/35_debugpy_remote_debugging/README.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/35_debugpy_remote_debugging/examples/example_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/35_debugpy_remote_debugging/exercise/exercise_01.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/35_debugpy_remote_debugging/references/links.md (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/35_debugpy_remote_debugging/tests/test_basic.py (100%) rename {11_modern_tooling_2026 => modules/11_modern_tooling_2026}/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/alembic_migrations/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/alembic_migrations/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/alembic_migrations/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/alembic_migrations/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/alembic_migrations/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/async_databases/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/async_databases/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/async_databases/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/async_databases/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/async_databases/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/authentication_jwt/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/authentication_jwt/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/authentication_jwt/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/authentication_jwt/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/authentication_jwt/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/background_tasks/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/background_tasks/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/background_tasks/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/background_tasks/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/background_tasks/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/cors/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/cors/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/cors/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/cors/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/cors/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/dependency_injection/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/dependency_injection/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/dependency_injection/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/dependency_injection/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/dependency_injection/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/deployment/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/deployment/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/deployment/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/deployment/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/deployment/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/error_handling/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/error_handling/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/error_handling/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/error_handling/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/error_handling/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_intro/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_intro/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_intro/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_intro/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_intro/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_performance/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_performance/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_performance/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_performance/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/fastapi_performance/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/file_uploads/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/file_uploads/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/file_uploads/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/file_uploads/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/file_uploads/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/graphql_optional/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/graphql_optional/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/graphql_optional/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/graphql_optional/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/graphql_optional/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/logging_monitoring/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/logging_monitoring/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/logging_monitoring/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/logging_monitoring/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/logging_monitoring/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/middleware/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/middleware/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/middleware/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/middleware/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/middleware/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/oauth2/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/oauth2/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/oauth2/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/oauth2/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/oauth2/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/openapi_customization/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/openapi_customization/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/openapi_customization/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/openapi_customization/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/openapi_customization/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/path_query_params/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/path_query_params/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/path_query_params/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/path_query_params/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/path_query_params/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/pydantic_models/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/pydantic_models/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/pydantic_models/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/pydantic_models/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/pydantic_models/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/rate_limiting/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/rate_limiting/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/rate_limiting/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/rate_limiting/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/rate_limiting/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/redis_caching/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/redis_caching/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/redis_caching/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/redis_caching/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/redis_caching/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/request_body/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/request_body/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/request_body/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/request_body/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/request_body/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/response_models/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/response_models/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/response_models/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/response_models/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/response_models/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/routing/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/routing/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/routing/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/routing/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/routing/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/security_best_practices/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/security_best_practices/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/security_best_practices/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/security_best_practices/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/security_best_practices/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/examples/library.db (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/sqlalchemy_integration/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/testing_fastapi/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/testing_fastapi/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/testing_fastapi/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/testing_fastapi/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/testing_fastapi/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/uvicorn_gunicorn/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/uvicorn_gunicorn/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/uvicorn_gunicorn/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/uvicorn_gunicorn/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/uvicorn_gunicorn/tests/test_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/websockets/README.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/websockets/examples/example_basic.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/websockets/exercise/exercise_01.py (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/websockets/references/links.md (100%) rename {12_fastapi_complete => modules/12_fastapi_complete}/websockets/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/api_versioning/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/api_versioning/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/api_versioning/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/api_versioning/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/api_versioning/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/arq_async_tasks/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/arq_async_tasks/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/arq_async_tasks/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/arq_async_tasks/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/arq_async_tasks/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/celery_intro/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/celery_intro/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/celery_intro/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/celery_intro/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/celery_intro/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/configuration_management/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/configuration_management/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/configuration_management/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/configuration_management/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/configuration_management/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/elasticsearch_optional/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/elasticsearch_optional/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/elasticsearch_optional/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/elasticsearch_optional/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/elasticsearch_optional/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/graphql_schemas_optional/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/graphql_schemas_optional/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/graphql_schemas_optional/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/graphql_schemas_optional/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/graphql_schemas_optional/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/grpc_intro/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/grpc_intro/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/grpc_intro/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/grpc_intro/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/grpc_intro/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/kafka_basics/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/kafka_basics/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/kafka_basics/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/kafka_basics/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/kafka_basics/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/opentelemetry/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/opentelemetry/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/opentelemetry/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/opentelemetry/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/opentelemetry/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/postgresql_advanced/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/postgresql_advanced/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/postgresql_advanced/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/postgresql_advanced/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/postgresql_advanced/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/prometheus_metrics/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/prometheus_metrics/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/prometheus_metrics/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/prometheus_metrics/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/prometheus_metrics/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/protobuf/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/protobuf/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/protobuf/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/protobuf/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/protobuf/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rabbitmq_basics/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rabbitmq_basics/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rabbitmq_basics/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rabbitmq_basics/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rabbitmq_basics/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_basics/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_basics/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_basics/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_basics/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_basics/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_patterns/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_patterns/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_patterns/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_patterns/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_patterns/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_pubsub/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_pubsub/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_pubsub/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_pubsub/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/redis_pubsub/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rest_api_design/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rest_api_design/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rest_api_design/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rest_api_design/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/rest_api_design/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_2_intro/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_2_intro/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_2_intro/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_2_intro/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_2_intro/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_async/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_async/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_async/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_async/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/sqlalchemy_async/tests/test_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/structured_logging/README.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/structured_logging/examples/example_basic.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/structured_logging/exercise/exercise_01.py (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/structured_logging/references/links.md (100%) rename {13_backend_ecosystem => modules/13_backend_ecosystem}/structured_logging/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/01_pyo3_introduction/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/01_pyo3_introduction/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/01_pyo3_introduction/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/01_pyo3_introduction/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/01_pyo3_introduction/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/02_rust_toolchain_maturin/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/02_rust_toolchain_maturin/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/02_rust_toolchain_maturin/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/02_rust_toolchain_maturin/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/02_rust_toolchain_maturin/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/03_first_rust_python_module/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/03_first_rust_python_module/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/03_first_rust_python_module/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/03_first_rust_python_module/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/03_first_rust_python_module/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/04_python_types_in_rust/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/04_python_types_in_rust/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/04_python_types_in_rust/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/04_python_types_in_rust/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/04_python_types_in_rust/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/05_error_handling_pyresult/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/05_error_handling_pyresult/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/05_error_handling_pyresult/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/05_error_handling_pyresult/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/05_error_handling_pyresult/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/06_automatic_conversions/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/06_automatic_conversions/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/06_automatic_conversions/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/06_automatic_conversions/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/06_automatic_conversions/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/07_python_classes_in_rust/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/07_python_classes_in_rust/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/07_python_classes_in_rust/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/07_python_classes_in_rust/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/07_python_classes_in_rust/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/08_pymethods/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/08_pymethods/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/08_pymethods/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/08_pymethods/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/08_pymethods/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/09_properties_rust/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/09_properties_rust/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/09_properties_rust/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/09_properties_rust/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/09_properties_rust/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/10_static_class_methods/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/10_static_class_methods/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/10_static_class_methods/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/10_static_class_methods/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/10_static_class_methods/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/11_operator_overloading/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/11_operator_overloading/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/11_operator_overloading/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/11_operator_overloading/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/11_operator_overloading/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/12_python_modules/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/12_python_modules/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/12_python_modules/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/12_python_modules/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/12_python_modules/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/13_gil_management/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/13_gil_management/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/13_gil_management/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/13_gil_management/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/13_gil_management/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/14_shared_mutable_state/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/14_shared_mutable_state/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/14_shared_mutable_state/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/14_shared_mutable_state/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/14_shared_mutable_state/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/15_async_rust_pyo3/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/15_async_rust_pyo3/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/15_async_rust_pyo3/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/15_async_rust_pyo3/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/15_async_rust_pyo3/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/16_numpy_arrays_zerocopy/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/16_numpy_arrays_zerocopy/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/16_numpy_arrays_zerocopy/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/16_numpy_arrays_zerocopy/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/16_numpy_arrays_zerocopy/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/17_python_callbacks_from_rust/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/17_python_callbacks_from_rust/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/17_python_callbacks_from_rust/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/17_python_callbacks_from_rust/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/17_python_callbacks_from_rust/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/18_performance_optimization/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/18_performance_optimization/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/18_performance_optimization/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/18_performance_optimization/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/18_performance_optimization/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/19_high_performance_parser/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/19_high_performance_parser/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/19_high_performance_parser/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/19_high_performance_parser/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/19_high_performance_parser/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/20_image_processing/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/20_image_processing/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/20_image_processing/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/20_image_processing/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/20_image_processing/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/21_cryptography_hashing/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/21_cryptography_hashing/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/21_cryptography_hashing/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/21_cryptography_hashing/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/21_cryptography_hashing/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/22_parallel_data_processing/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/22_parallel_data_processing/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/22_parallel_data_processing/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/22_parallel_data_processing/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/22_parallel_data_processing/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/23_embeddings_vector_stores/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/23_embeddings_vector_stores/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/23_embeddings_vector_stores/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/23_embeddings_vector_stores/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/23_embeddings_vector_stores/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/24_streaming_llm_responses/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/24_streaming_llm_responses/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/24_streaming_llm_responses/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/24_streaming_llm_responses/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/24_streaming_llm_responses/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/25_structured_output_pydantic/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/25_structured_output_pydantic/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/25_structured_output_pydantic/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/25_structured_output_pydantic/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/25_structured_output_pydantic/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/26_code_prompt_engineering/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/26_code_prompt_engineering/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/26_code_prompt_engineering/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/26_code_prompt_engineering/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/26_code_prompt_engineering/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/27_function_calling_tools/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/27_function_calling_tools/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/27_function_calling_tools/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/27_function_calling_tools/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/27_function_calling_tools/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/28_langchain_basics/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/28_langchain_basics/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/28_langchain_basics/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/28_langchain_basics/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/28_langchain_basics/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/29_langchain_chains/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/29_langchain_chains/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/29_langchain_chains/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/29_langchain_chains/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/29_langchain_chains/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/30_rag_retrieval_augmented/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/30_rag_retrieval_augmented/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/30_rag_retrieval_augmented/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/30_rag_retrieval_augmented/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/30_rag_retrieval_augmented/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/31_memory_systems/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/31_memory_systems/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/31_memory_systems/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/31_memory_systems/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/31_memory_systems/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/32_document_loaders/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/32_document_loaders/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/32_document_loaders/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/32_document_loaders/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/32_document_loaders/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/33_text_splitters/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/33_text_splitters/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/33_text_splitters/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/33_text_splitters/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/33_text_splitters/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/34_vector_stores_chromadb/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/34_vector_stores_chromadb/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/34_vector_stores_chromadb/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/34_vector_stores_chromadb/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/34_vector_stores_chromadb/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/35_langgraph_intro/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/35_langgraph_intro/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/35_langgraph_intro/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/35_langgraph_intro/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/35_langgraph_intro/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/36_graphs_vs_chains/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/36_graphs_vs_chains/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/36_graphs_vs_chains/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/36_graphs_vs_chains/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/36_graphs_vs_chains/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/37_nodes_edges/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/37_nodes_edges/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/37_nodes_edges/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/37_nodes_edges/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/37_nodes_edges/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/38_state_management/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/38_state_management/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/38_state_management/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/38_state_management/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/38_state_management/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/39_conditional_routing/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/39_conditional_routing/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/39_conditional_routing/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/39_conditional_routing/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/39_conditional_routing/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/40_human_in_loop/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/40_human_in_loop/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/40_human_in_loop/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/40_human_in_loop/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/40_human_in_loop/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/41_react_pattern/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/41_react_pattern/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/41_react_pattern/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/41_react_pattern/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/41_react_pattern/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/42_agent_executors/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/42_agent_executors/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/42_agent_executors/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/42_agent_executors/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/42_agent_executors/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/43_multi_agent_systems/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/43_multi_agent_systems/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/43_multi_agent_systems/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/43_multi_agent_systems/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/43_multi_agent_systems/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/44_testing_llm_systems/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/44_testing_llm_systems/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/44_testing_llm_systems/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/44_testing_llm_systems/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/44_testing_llm_systems/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/45_cost_tracking/README.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/45_cost_tracking/examples/example_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/45_cost_tracking/exercise/exercise_01.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/45_cost_tracking/references/links.md (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/45_cost_tracking/tests/test_basic.py (100%) rename {14_advanced_python_2026 => modules/14_advanced_python_2026}/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/data_cleaning/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/data_cleaning/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/data_cleaning/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/data_cleaning/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/data_cleaning/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/exploratory_analysis/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/exploratory_analysis/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/exploratory_analysis/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/exploratory_analysis/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/exploratory_analysis/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/jupyter_notebooks_optional/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/jupyter_notebooks_optional/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/jupyter_notebooks_optional/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/jupyter_notebooks_optional/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/jupyter_notebooks_optional/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/matplotlib_basics/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/matplotlib_basics/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/matplotlib_basics/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/matplotlib_basics/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/matplotlib_basics/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/numpy_basics/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/numpy_basics/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/numpy_basics/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/numpy_basics/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/numpy_basics/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_intro/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_intro/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_intro/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_intro/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_intro/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_operations/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_operations/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_operations/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_operations/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_operations/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_performance/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_performance/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_performance/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_performance/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/pandas_performance/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/polars_intro/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/polars_intro/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/polars_intro/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/polars_intro/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/polars_intro/tests/test_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/seaborn_viz/README.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/seaborn_viz/examples/example_basic.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/seaborn_viz/exercise/exercise_01.py (100%) rename {15_basic_data_science => modules/15_basic_data_science}/seaborn_viz/references/links.md (100%) rename {15_basic_data_science => modules/15_basic_data_science}/seaborn_viz/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/01_supply_chain_security/README.md (100%) rename {16_modern_security => modules/16_modern_security}/01_supply_chain_security/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/01_supply_chain_security/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/01_supply_chain_security/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/01_supply_chain_security/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/02_dependency_attacks/README.md (100%) rename {16_modern_security => modules/16_modern_security}/02_dependency_attacks/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/02_dependency_attacks/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/02_dependency_attacks/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/02_dependency_attacks/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/03_typosquatting_pypi/README.md (100%) rename {16_modern_security => modules/16_modern_security}/03_typosquatting_pypi/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/03_typosquatting_pypi/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/03_typosquatting_pypi/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/03_typosquatting_pypi/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/04_malicious_packages/README.md (100%) rename {16_modern_security => modules/16_modern_security}/04_malicious_packages/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/04_malicious_packages/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/04_malicious_packages/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/04_malicious_packages/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/05_sbom_introduction/README.md (100%) rename {16_modern_security => modules/16_modern_security}/05_sbom_introduction/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/05_sbom_introduction/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/05_sbom_introduction/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/05_sbom_introduction/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/06_sbom_formats_spdx_cyclonedx/README.md (100%) rename {16_modern_security => modules/16_modern_security}/06_sbom_formats_spdx_cyclonedx/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/06_sbom_formats_spdx_cyclonedx/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/06_sbom_formats_spdx_cyclonedx/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/06_sbom_formats_spdx_cyclonedx/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/07_sbom_generation_syft/README.md (100%) rename {16_modern_security => modules/16_modern_security}/07_sbom_generation_syft/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/07_sbom_generation_syft/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/07_sbom_generation_syft/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/07_sbom_generation_syft/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/08_sbom_vulnerability_analysis/README.md (100%) rename {16_modern_security => modules/16_modern_security}/08_sbom_vulnerability_analysis/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/08_sbom_vulnerability_analysis/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/08_sbom_vulnerability_analysis/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/08_sbom_vulnerability_analysis/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/09_sbom_ci_cd/README.md (100%) rename {16_modern_security => modules/16_modern_security}/09_sbom_ci_cd/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/09_sbom_ci_cd/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/09_sbom_ci_cd/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/09_sbom_ci_cd/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/10_sbom_signing/README.md (100%) rename {16_modern_security => modules/16_modern_security}/10_sbom_signing/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/10_sbom_signing/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/10_sbom_signing/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/10_sbom_signing/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/11_sigstore_architecture/README.md (100%) rename {16_modern_security => modules/16_modern_security}/11_sigstore_architecture/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/11_sigstore_architecture/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/11_sigstore_architecture/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/11_sigstore_architecture/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/12_keyless_signing_oidc/README.md (100%) rename {16_modern_security => modules/16_modern_security}/12_keyless_signing_oidc/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/12_keyless_signing_oidc/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/12_keyless_signing_oidc/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/12_keyless_signing_oidc/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/13_signing_wheels_cosign/README.md (100%) rename {16_modern_security => modules/16_modern_security}/13_signing_wheels_cosign/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/13_signing_wheels_cosign/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/13_signing_wheels_cosign/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/13_signing_wheels_cosign/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/14_signing_containers/README.md (100%) rename {16_modern_security => modules/16_modern_security}/14_signing_containers/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/14_signing_containers/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/14_signing_containers/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/14_signing_containers/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/15_signature_verification/README.md (100%) rename {16_modern_security => modules/16_modern_security}/15_signature_verification/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/15_signature_verification/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/15_signature_verification/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/15_signature_verification/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/16_transparency_logs_rekor/README.md (100%) rename {16_modern_security => modules/16_modern_security}/16_transparency_logs_rekor/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/16_transparency_logs_rekor/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/16_transparency_logs_rekor/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/16_transparency_logs_rekor/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/17_vulnerability_scanning_safety/README.md (100%) rename {16_modern_security => modules/16_modern_security}/17_vulnerability_scanning_safety/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/17_vulnerability_scanning_safety/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/17_vulnerability_scanning_safety/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/17_vulnerability_scanning_safety/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/18_trivy_containers/README.md (100%) rename {16_modern_security => modules/16_modern_security}/18_trivy_containers/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/18_trivy_containers/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/18_trivy_containers/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/18_trivy_containers/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/19_grype_scanning/README.md (100%) rename {16_modern_security => modules/16_modern_security}/19_grype_scanning/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/19_grype_scanning/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/19_grype_scanning/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/19_grype_scanning/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/20_dependabot_github/README.md (100%) rename {16_modern_security => modules/16_modern_security}/20_dependabot_github/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/20_dependabot_github/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/20_dependabot_github/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/20_dependabot_github/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/21_automated_patching/README.md (100%) rename {16_modern_security => modules/16_modern_security}/21_automated_patching/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/21_automated_patching/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/21_automated_patching/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/21_automated_patching/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/22_secrets_management_intro/README.md (100%) rename {16_modern_security => modules/16_modern_security}/22_secrets_management_intro/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/22_secrets_management_intro/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/22_secrets_management_intro/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/22_secrets_management_intro/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/23_environment_variables/README.md (100%) rename {16_modern_security => modules/16_modern_security}/23_environment_variables/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/23_environment_variables/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/23_environment_variables/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/23_environment_variables/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/24_secrets_ci_cd/README.md (100%) rename {16_modern_security => modules/16_modern_security}/24_secrets_ci_cd/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/24_secrets_ci_cd/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/24_secrets_ci_cd/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/24_secrets_ci_cd/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/25_sops_introduction/README.md (100%) rename {16_modern_security => modules/16_modern_security}/25_sops_introduction/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/25_sops_introduction/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/25_sops_introduction/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/25_sops_introduction/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/26_sops_backends_age_kms/README.md (100%) rename {16_modern_security => modules/16_modern_security}/26_sops_backends_age_kms/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/26_sops_backends_age_kms/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/26_sops_backends_age_kms/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/26_sops_backends_age_kms/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/27_sops_yaml_json/README.md (100%) rename {16_modern_security => modules/16_modern_security}/27_sops_yaml_json/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/27_sops_yaml_json/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/27_sops_yaml_json/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/27_sops_yaml_json/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/28_sops_git_integration/README.md (100%) rename {16_modern_security => modules/16_modern_security}/28_sops_git_integration/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/28_sops_git_integration/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/28_sops_git_integration/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/28_sops_git_integration/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/29_key_rotation_sops/README.md (100%) rename {16_modern_security => modules/16_modern_security}/29_key_rotation_sops/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/29_key_rotation_sops/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/29_key_rotation_sops/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/29_key_rotation_sops/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/30_vault_architecture/README.md (100%) rename {16_modern_security => modules/16_modern_security}/30_vault_architecture/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/30_vault_architecture/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/30_vault_architecture/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/30_vault_architecture/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/31_dynamic_secrets_vault/README.md (100%) rename {16_modern_security => modules/16_modern_security}/31_dynamic_secrets_vault/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/31_dynamic_secrets_vault/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/31_dynamic_secrets_vault/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/31_dynamic_secrets_vault/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/32_vault_agents/README.md (100%) rename {16_modern_security => modules/16_modern_security}/32_vault_agents/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/32_vault_agents/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/32_vault_agents/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/32_vault_agents/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/33_vault_python_hvac/README.md (100%) rename {16_modern_security => modules/16_modern_security}/33_vault_python_hvac/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/33_vault_python_hvac/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/33_vault_python_hvac/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/33_vault_python_hvac/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/34_vault_kubernetes/README.md (100%) rename {16_modern_security => modules/16_modern_security}/34_vault_kubernetes/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/34_vault_kubernetes/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/34_vault_kubernetes/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/34_vault_kubernetes/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/35_kubernetes_secrets/README.md (100%) rename {16_modern_security => modules/16_modern_security}/35_kubernetes_secrets/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/35_kubernetes_secrets/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/35_kubernetes_secrets/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/35_kubernetes_secrets/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/36_external_secrets_operator/README.md (100%) rename {16_modern_security => modules/16_modern_security}/36_external_secrets_operator/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/36_external_secrets_operator/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/36_external_secrets_operator/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/36_external_secrets_operator/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/37_sealed_secrets/README.md (100%) rename {16_modern_security => modules/16_modern_security}/37_sealed_secrets/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/37_sealed_secrets/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/37_sealed_secrets/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/37_sealed_secrets/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/38_input_validation/README.md (100%) rename {16_modern_security => modules/16_modern_security}/38_input_validation/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/38_input_validation/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/38_input_validation/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/38_input_validation/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/39_sql_injection_prevention/README.md (100%) rename {16_modern_security => modules/16_modern_security}/39_sql_injection_prevention/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/39_sql_injection_prevention/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/39_sql_injection_prevention/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/39_sql_injection_prevention/tests/test_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/40_xss_csrf_prevention/README.md (100%) rename {16_modern_security => modules/16_modern_security}/40_xss_csrf_prevention/examples/example_basic.py (100%) rename {16_modern_security => modules/16_modern_security}/40_xss_csrf_prevention/exercise/exercise_01.py (100%) rename {16_modern_security => modules/16_modern_security}/40_xss_csrf_prevention/references/links.md (100%) rename {16_modern_security => modules/16_modern_security}/40_xss_csrf_prevention/tests/test_basic.py (100%) diff --git a/README.md b/README.md index 4846c945..7cefee50 100644 --- a/README.md +++ b/README.md @@ -65,22 +65,22 @@ ______________________________________________________________________ | Module | What you learn | | --------------------------------------------------------------- | ---------------------------------------------- | -| [01_python_fundamentals](01_python_fundamentals/) | Solid language foundation | -| [02_intermediate_python](02_intermediate_python/) | Flow, files, exceptions, generators | -| [03_basic_intermediate_oop](03_basic_intermediate_oop/) | Applicable object-oriented design | -| [04_cpython_internals_advanced](04_cpython_internals_advanced/) | Internals, GIL/free-threading, subinterpreters | -| [05_modern_concurrency](05_modern_concurrency/) | Threading, multiprocessing, modern asyncio | -| [06_typing_metaprogramming](06_typing_metaprogramming/) | Advanced typing and metaprogramming | -| [07_design_patterns](07_design_patterns/) | Patterns for robust design | -| [08_application_architecture](08_application_architecture/) | Modular and scalable architecture | -| [09_testing_qa](09_testing_qa/) | Professional testing and quality | -| [10_performance_optimization](10_performance_optimization/) | Practical profiling and optimization | -| [11_modern_tooling_2026](11_modern_tooling_2026/) | uv, Ruff, modern type checking | -| [12_fastapi_complete](12_fastapi_complete/) | Modern production-ready APIs | -| [13_backend_ecosystem](13_backend_ecosystem/) | Backend and infrastructure integration | -| [14_advanced_python_2026](14_advanced_python_2026/) | PyO3 and AI-assisted development | -| [15_basic_data_science](15_basic_data_science/) | Python data science fundamentals | -| [16_modern_security](16_modern_security/) | Modern software and supply chain security | +| [01_python_fundamentals](modules/01_python_fundamentals/) | Solid language foundation | +| [02_intermediate_python](modules/02_intermediate_python/) | Flow, files, exceptions, generators | +| [03_basic_intermediate_oop](modules/03_basic_intermediate_oop/) | Applicable object-oriented design | +| [04_cpython_internals_advanced](modules/04_cpython_internals_advanced/) | Internals, GIL/free-threading, subinterpreters | +| [05_modern_concurrency](modules/05_modern_concurrency/) | Threading, multiprocessing, modern asyncio | +| [06_typing_metaprogramming](modules/06_typing_metaprogramming/) | Advanced typing and metaprogramming | +| [07_design_patterns](modules/07_design_patterns/) | Patterns for robust design | +| [08_application_architecture](modules/08_application_architecture/) | Modular and scalable architecture | +| [09_testing_qa](modules/09_testing_qa/) | Professional testing and quality | +| [10_performance_optimization](modules/10_performance_optimization/) | Practical profiling and optimization | +| [11_modern_tooling_2026](modules/11_modern_tooling_2026/) | uv, Ruff, modern type checking | +| [12_fastapi_complete](modules/12_fastapi_complete/) | Modern production-ready APIs | +| [13_backend_ecosystem](modules/13_backend_ecosystem/) | Backend and infrastructure integration | +| [14_advanced_python_2026](modules/14_advanced_python_2026/) | PyO3 and AI-assisted development | +| [15_basic_data_science](modules/15_basic_data_science/) | Python data science fundamentals | +| [16_modern_security](modules/16_modern_security/) | Modern software and supply chain security | ______________________________________________________________________ @@ -180,19 +180,19 @@ ______________________________________________________________________ ### Basic Level (Optional for those who already know Python) -#### [01 - Python Fundamentals](01_python_fundamentals/) +#### [01 - Python Fundamentals](modules/01_python_fundamentals/) Variables, data types, control structures, built-in data structures, basic functions, comprehensions. Topics marked as `(optional)` for experienced programmers. **Topics**: 12 | **Estimated time**: 15-20 hours -#### [02 - Intermediate Python](02_intermediate_python/) +#### [02 - Intermediate Python](modules/02_intermediate_python/) Basic decorators, file handling, exceptions, iterators, generators, important standard modules. **Topics**: 15 | **Estimated time**: 20-25 hours -#### [03 - Basic and Intermediate OOP](03_basic_intermediate_oop/) +#### [03 - Basic and Intermediate OOP](modules/03_basic_intermediate_oop/) Classes, inheritance, polymorphism, special methods, properties, descriptors, composition vs inheritance. @@ -202,7 +202,7 @@ ______________________________________________________________________ ### Intermediate-Advanced Level -#### [04 - CPython Internals Advanced](04_cpython_internals_advanced/) +#### [04 - CPython Internals Advanced](modules/04_cpython_internals_advanced/) History of the GIL, **PEP 703 free-threading**, **PEP 684 subinterpreters**, thread-safety without GIL, object model, reference counting, migration strategies. @@ -216,13 +216,13 @@ History of the GIL, **PEP 703 free-threading**, **PEP 684 subinterpreters**, thr - Biased reference counting - Immortal objects (PEP 683) -#### [05 - Modern Concurrency and Parallelism](05_modern_concurrency/) +#### [05 - Modern Concurrency and Parallelism](modules/05_modern_concurrency/) Threading with/without GIL, subinterpreters for isolation, multiprocessing with shared memory, advanced asyncio, concurrency patterns, concurrent testing. **Topics**: 25 | **Estimated time**: 35-50 hours -#### [06 - Typing and Metaprogramming](06_typing_metaprogramming/) +#### [06 - Typing and Metaprogramming](modules/06_typing_metaprogramming/) Advanced type hints, Protocols, TypeVar, ParamSpec, metaclasses, descriptors, AST manipulation, import hooks. @@ -232,25 +232,25 @@ ______________________________________________________________________ ### Patterns and Architecture -#### [07 - Design Patterns](07_design_patterns/) +#### [07 - Design Patterns](modules/07_design_patterns/) 88 design patterns organized in 8 subcategories: GoF basics, Pythonic, advanced GoF, architectural, distributed systems, concurrency, messaging, object management. **Patterns**: 88 | **Estimated time**: 60-80 hours -#### [08 - Application Architecture](08_application_architecture/) +#### [08 - Application Architecture](modules/08_application_architecture/) SOLID, DDD, hexagonal architecture, CQRS, Event-Driven, clean architecture with practical Python examples. **Topics**: 18 | **Estimated time**: 25-35 hours -#### [09 - Testing and QA](09_testing_qa/) +#### [09 - Testing and QA](modules/09_testing_qa/) pytest advanced, fixtures, mocking, hypothesis (property-based testing), mutation testing, performance testing. **Topics**: 16 | **Estimated time**: 20-30 hours -#### [10 - Performance and Optimization](10_performance_optimization/) +#### [10 - Performance and Optimization](modules/10_performance_optimization/) Profiling (py-spy, memray, viztracer), algorithmic optimization, Cython, NumPy vectorization, strategic caching. @@ -260,37 +260,37 @@ ______________________________________________________________________ ### Modern Stack 2026 -#### [11 - Modern Tooling 2026](11_modern_tooling_2026/) +#### [11 - Modern Tooling 2026](modules/11_modern_tooling_2026/) uv (Rust-based package manager), Ruff (linter/formatter), BasedPyright/Pylyzer, pre-commit automation, advanced pytest configuration. **Topics**: 35 | **Estimated time**: 25-35 hours -#### [12 - FastAPI Complete](12_fastapi_complete/) +#### [12 - FastAPI Complete](modules/12_fastapi_complete/) Complete FastAPI framework, JWT authentication, WebSockets, background tasks, deployment on Railway/Fly.io. **Topics**: 28 | **Estimated time**: 40-56 hours -#### [13 - Backend Ecosystem](13_backend_ecosystem/) +#### [13 - Backend Ecosystem](modules/13_backend_ecosystem/) SQLAlchemy 2.0, Redis, RabbitMQ, Kafka, gRPC, distributed observability, service mesh. **Topics**: 20 | **Estimated time**: 28-40 hours -#### [14 - Advanced Python 2026](14_advanced_python_2026/) +#### [14 - Advanced Python 2026](modules/14_advanced_python_2026/) PyO3 (Rust extensions) — 22 topics. AI-Assisted Development — 23 topics. LangChain, LangGraph, autonomous agents. **Topics**: 45 | **Estimated time**: 45-60 hours -#### [15 - Basic Data Science](15_basic_data_science/) +#### [15 - Basic Data Science](modules/15_basic_data_science/) NumPy, Pandas, Matplotlib, Polars, practical statistics for data engineering. **Topics**: 10 | **Estimated time**: 15-20 hours -#### [16 - Modern Security](16_modern_security/) +#### [16 - Modern Security](modules/16_modern_security/) Supply chain security, SBOM, Sigstore (keyless signing), SOPS/Vault (secrets management), runtime hardening. diff --git a/01_python_fundamentals/README.md b/modules/01_python_fundamentals/README.md similarity index 100% rename from 01_python_fundamentals/README.md rename to modules/01_python_fundamentals/README.md diff --git a/01_python_fundamentals/advanced_strings/README.md b/modules/01_python_fundamentals/advanced_strings/README.md similarity index 100% rename from 01_python_fundamentals/advanced_strings/README.md rename to modules/01_python_fundamentals/advanced_strings/README.md diff --git a/01_python_fundamentals/advanced_strings/examples/example_basic.py b/modules/01_python_fundamentals/advanced_strings/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/advanced_strings/examples/example_basic.py rename to modules/01_python_fundamentals/advanced_strings/examples/example_basic.py diff --git a/01_python_fundamentals/advanced_strings/exercise/exercise_01.py b/modules/01_python_fundamentals/advanced_strings/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/advanced_strings/exercise/exercise_01.py rename to modules/01_python_fundamentals/advanced_strings/exercise/exercise_01.py diff --git a/01_python_fundamentals/advanced_strings/references/links.md b/modules/01_python_fundamentals/advanced_strings/references/links.md similarity index 100% rename from 01_python_fundamentals/advanced_strings/references/links.md rename to modules/01_python_fundamentals/advanced_strings/references/links.md diff --git a/01_python_fundamentals/advanced_strings/tests/test_basic.py b/modules/01_python_fundamentals/advanced_strings/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/advanced_strings/tests/test_basic.py rename to modules/01_python_fundamentals/advanced_strings/tests/test_basic.py diff --git a/01_python_fundamentals/basic_debugging_optional/README.md b/modules/01_python_fundamentals/basic_debugging_optional/README.md similarity index 100% rename from 01_python_fundamentals/basic_debugging_optional/README.md rename to modules/01_python_fundamentals/basic_debugging_optional/README.md diff --git a/01_python_fundamentals/basic_debugging_optional/examples/example_basic.py b/modules/01_python_fundamentals/basic_debugging_optional/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/basic_debugging_optional/examples/example_basic.py rename to modules/01_python_fundamentals/basic_debugging_optional/examples/example_basic.py diff --git a/01_python_fundamentals/basic_debugging_optional/exercise/exercise_01.py b/modules/01_python_fundamentals/basic_debugging_optional/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/basic_debugging_optional/exercise/exercise_01.py rename to modules/01_python_fundamentals/basic_debugging_optional/exercise/exercise_01.py diff --git a/01_python_fundamentals/basic_debugging_optional/references/links.md b/modules/01_python_fundamentals/basic_debugging_optional/references/links.md similarity index 100% rename from 01_python_fundamentals/basic_debugging_optional/references/links.md rename to modules/01_python_fundamentals/basic_debugging_optional/references/links.md diff --git a/01_python_fundamentals/basic_debugging_optional/tests/test_basic.py b/modules/01_python_fundamentals/basic_debugging_optional/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/basic_debugging_optional/tests/test_basic.py rename to modules/01_python_fundamentals/basic_debugging_optional/tests/test_basic.py diff --git a/01_python_fundamentals/basic_error_handling/README.md b/modules/01_python_fundamentals/basic_error_handling/README.md similarity index 100% rename from 01_python_fundamentals/basic_error_handling/README.md rename to modules/01_python_fundamentals/basic_error_handling/README.md diff --git a/01_python_fundamentals/basic_error_handling/examples/example_basic.py b/modules/01_python_fundamentals/basic_error_handling/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/basic_error_handling/examples/example_basic.py rename to modules/01_python_fundamentals/basic_error_handling/examples/example_basic.py diff --git a/01_python_fundamentals/basic_error_handling/exercise/exercise_01.py b/modules/01_python_fundamentals/basic_error_handling/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/basic_error_handling/exercise/exercise_01.py rename to modules/01_python_fundamentals/basic_error_handling/exercise/exercise_01.py diff --git a/01_python_fundamentals/basic_error_handling/references/links.md b/modules/01_python_fundamentals/basic_error_handling/references/links.md similarity index 100% rename from 01_python_fundamentals/basic_error_handling/references/links.md rename to modules/01_python_fundamentals/basic_error_handling/references/links.md diff --git a/01_python_fundamentals/basic_error_handling/tests/test_basic.py b/modules/01_python_fundamentals/basic_error_handling/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/basic_error_handling/tests/test_basic.py rename to modules/01_python_fundamentals/basic_error_handling/tests/test_basic.py diff --git a/01_python_fundamentals/basic_functions/README.md b/modules/01_python_fundamentals/basic_functions/README.md similarity index 100% rename from 01_python_fundamentals/basic_functions/README.md rename to modules/01_python_fundamentals/basic_functions/README.md diff --git a/01_python_fundamentals/basic_functions/examples/example_basic.py b/modules/01_python_fundamentals/basic_functions/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/basic_functions/examples/example_basic.py rename to modules/01_python_fundamentals/basic_functions/examples/example_basic.py diff --git a/01_python_fundamentals/basic_functions/exercise/exercise_01.py b/modules/01_python_fundamentals/basic_functions/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/basic_functions/exercise/exercise_01.py rename to modules/01_python_fundamentals/basic_functions/exercise/exercise_01.py diff --git a/01_python_fundamentals/basic_functions/references/links.md b/modules/01_python_fundamentals/basic_functions/references/links.md similarity index 100% rename from 01_python_fundamentals/basic_functions/references/links.md rename to modules/01_python_fundamentals/basic_functions/references/links.md diff --git a/01_python_fundamentals/basic_functions/tests/test_basic.py b/modules/01_python_fundamentals/basic_functions/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/basic_functions/tests/test_basic.py rename to modules/01_python_fundamentals/basic_functions/tests/test_basic.py diff --git a/01_python_fundamentals/comprehensions/README.md b/modules/01_python_fundamentals/comprehensions/README.md similarity index 100% rename from 01_python_fundamentals/comprehensions/README.md rename to modules/01_python_fundamentals/comprehensions/README.md diff --git a/01_python_fundamentals/comprehensions/examples/example_basic.py b/modules/01_python_fundamentals/comprehensions/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/comprehensions/examples/example_basic.py rename to modules/01_python_fundamentals/comprehensions/examples/example_basic.py diff --git a/01_python_fundamentals/comprehensions/exercise/exercise_01.py b/modules/01_python_fundamentals/comprehensions/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/comprehensions/exercise/exercise_01.py rename to modules/01_python_fundamentals/comprehensions/exercise/exercise_01.py diff --git a/01_python_fundamentals/comprehensions/references/links.md b/modules/01_python_fundamentals/comprehensions/references/links.md similarity index 100% rename from 01_python_fundamentals/comprehensions/references/links.md rename to modules/01_python_fundamentals/comprehensions/references/links.md diff --git a/01_python_fundamentals/comprehensions/tests/test_basic.py b/modules/01_python_fundamentals/comprehensions/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/comprehensions/tests/test_basic.py rename to modules/01_python_fundamentals/comprehensions/tests/test_basic.py diff --git a/01_python_fundamentals/control_structures/README.md b/modules/01_python_fundamentals/control_structures/README.md similarity index 100% rename from 01_python_fundamentals/control_structures/README.md rename to modules/01_python_fundamentals/control_structures/README.md diff --git a/01_python_fundamentals/control_structures/examples/example_basic.py b/modules/01_python_fundamentals/control_structures/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/control_structures/examples/example_basic.py rename to modules/01_python_fundamentals/control_structures/examples/example_basic.py diff --git a/01_python_fundamentals/control_structures/exercise/exercise_01.py b/modules/01_python_fundamentals/control_structures/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/control_structures/exercise/exercise_01.py rename to modules/01_python_fundamentals/control_structures/exercise/exercise_01.py diff --git a/01_python_fundamentals/control_structures/references/links.md b/modules/01_python_fundamentals/control_structures/references/links.md similarity index 100% rename from 01_python_fundamentals/control_structures/references/links.md rename to modules/01_python_fundamentals/control_structures/references/links.md diff --git a/01_python_fundamentals/control_structures/tests/test_basic.py b/modules/01_python_fundamentals/control_structures/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/control_structures/tests/test_basic.py rename to modules/01_python_fundamentals/control_structures/tests/test_basic.py diff --git a/01_python_fundamentals/dictionaries_sets/README.md b/modules/01_python_fundamentals/dictionaries_sets/README.md similarity index 100% rename from 01_python_fundamentals/dictionaries_sets/README.md rename to modules/01_python_fundamentals/dictionaries_sets/README.md diff --git a/01_python_fundamentals/dictionaries_sets/examples/example_basic.py b/modules/01_python_fundamentals/dictionaries_sets/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/dictionaries_sets/examples/example_basic.py rename to modules/01_python_fundamentals/dictionaries_sets/examples/example_basic.py diff --git a/01_python_fundamentals/dictionaries_sets/exercise/exercise_01.py b/modules/01_python_fundamentals/dictionaries_sets/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/dictionaries_sets/exercise/exercise_01.py rename to modules/01_python_fundamentals/dictionaries_sets/exercise/exercise_01.py diff --git a/01_python_fundamentals/dictionaries_sets/references/links.md b/modules/01_python_fundamentals/dictionaries_sets/references/links.md similarity index 100% rename from 01_python_fundamentals/dictionaries_sets/references/links.md rename to modules/01_python_fundamentals/dictionaries_sets/references/links.md diff --git a/01_python_fundamentals/dictionaries_sets/tests/test_basic.py b/modules/01_python_fundamentals/dictionaries_sets/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/dictionaries_sets/tests/test_basic.py rename to modules/01_python_fundamentals/dictionaries_sets/tests/test_basic.py diff --git a/01_python_fundamentals/input_output_optional/README.md b/modules/01_python_fundamentals/input_output_optional/README.md similarity index 100% rename from 01_python_fundamentals/input_output_optional/README.md rename to modules/01_python_fundamentals/input_output_optional/README.md diff --git a/01_python_fundamentals/input_output_optional/examples/example_basic.py b/modules/01_python_fundamentals/input_output_optional/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/input_output_optional/examples/example_basic.py rename to modules/01_python_fundamentals/input_output_optional/examples/example_basic.py diff --git a/01_python_fundamentals/input_output_optional/exercise/exercise_01.py b/modules/01_python_fundamentals/input_output_optional/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/input_output_optional/exercise/exercise_01.py rename to modules/01_python_fundamentals/input_output_optional/exercise/exercise_01.py diff --git a/01_python_fundamentals/input_output_optional/references/links.md b/modules/01_python_fundamentals/input_output_optional/references/links.md similarity index 100% rename from 01_python_fundamentals/input_output_optional/references/links.md rename to modules/01_python_fundamentals/input_output_optional/references/links.md diff --git a/01_python_fundamentals/input_output_optional/tests/test_basic.py b/modules/01_python_fundamentals/input_output_optional/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/input_output_optional/tests/test_basic.py rename to modules/01_python_fundamentals/input_output_optional/tests/test_basic.py diff --git a/01_python_fundamentals/lists_tuples/README.md b/modules/01_python_fundamentals/lists_tuples/README.md similarity index 100% rename from 01_python_fundamentals/lists_tuples/README.md rename to modules/01_python_fundamentals/lists_tuples/README.md diff --git a/01_python_fundamentals/lists_tuples/examples/example_basic.py b/modules/01_python_fundamentals/lists_tuples/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/lists_tuples/examples/example_basic.py rename to modules/01_python_fundamentals/lists_tuples/examples/example_basic.py diff --git a/01_python_fundamentals/lists_tuples/exercise/exercise_01.py b/modules/01_python_fundamentals/lists_tuples/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/lists_tuples/exercise/exercise_01.py rename to modules/01_python_fundamentals/lists_tuples/exercise/exercise_01.py diff --git a/01_python_fundamentals/lists_tuples/references/links.md b/modules/01_python_fundamentals/lists_tuples/references/links.md similarity index 100% rename from 01_python_fundamentals/lists_tuples/references/links.md rename to modules/01_python_fundamentals/lists_tuples/references/links.md diff --git a/01_python_fundamentals/lists_tuples/tests/test_basic.py b/modules/01_python_fundamentals/lists_tuples/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/lists_tuples/tests/test_basic.py rename to modules/01_python_fundamentals/lists_tuples/tests/test_basic.py diff --git a/01_python_fundamentals/module_imports/README.md b/modules/01_python_fundamentals/module_imports/README.md similarity index 100% rename from 01_python_fundamentals/module_imports/README.md rename to modules/01_python_fundamentals/module_imports/README.md diff --git a/01_python_fundamentals/module_imports/examples/example_basic.py b/modules/01_python_fundamentals/module_imports/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/module_imports/examples/example_basic.py rename to modules/01_python_fundamentals/module_imports/examples/example_basic.py diff --git a/01_python_fundamentals/module_imports/exercise/exercise_01.py b/modules/01_python_fundamentals/module_imports/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/module_imports/exercise/exercise_01.py rename to modules/01_python_fundamentals/module_imports/exercise/exercise_01.py diff --git a/01_python_fundamentals/module_imports/references/links.md b/modules/01_python_fundamentals/module_imports/references/links.md similarity index 100% rename from 01_python_fundamentals/module_imports/references/links.md rename to modules/01_python_fundamentals/module_imports/references/links.md diff --git a/01_python_fundamentals/module_imports/tests/test_basic.py b/modules/01_python_fundamentals/module_imports/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/module_imports/tests/test_basic.py rename to modules/01_python_fundamentals/module_imports/tests/test_basic.py diff --git a/01_python_fundamentals/operators_expressions_optional/README.md b/modules/01_python_fundamentals/operators_expressions_optional/README.md similarity index 100% rename from 01_python_fundamentals/operators_expressions_optional/README.md rename to modules/01_python_fundamentals/operators_expressions_optional/README.md diff --git a/01_python_fundamentals/operators_expressions_optional/examples/example_basic.py b/modules/01_python_fundamentals/operators_expressions_optional/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/operators_expressions_optional/examples/example_basic.py rename to modules/01_python_fundamentals/operators_expressions_optional/examples/example_basic.py diff --git a/01_python_fundamentals/operators_expressions_optional/exercise/exercise_01.py b/modules/01_python_fundamentals/operators_expressions_optional/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/operators_expressions_optional/exercise/exercise_01.py rename to modules/01_python_fundamentals/operators_expressions_optional/exercise/exercise_01.py diff --git a/01_python_fundamentals/operators_expressions_optional/references/links.md b/modules/01_python_fundamentals/operators_expressions_optional/references/links.md similarity index 100% rename from 01_python_fundamentals/operators_expressions_optional/references/links.md rename to modules/01_python_fundamentals/operators_expressions_optional/references/links.md diff --git a/01_python_fundamentals/operators_expressions_optional/tests/test_basic.py b/modules/01_python_fundamentals/operators_expressions_optional/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/operators_expressions_optional/tests/test_basic.py rename to modules/01_python_fundamentals/operators_expressions_optional/tests/test_basic.py diff --git a/01_python_fundamentals/variables_data_types_optional/README.md b/modules/01_python_fundamentals/variables_data_types_optional/README.md similarity index 100% rename from 01_python_fundamentals/variables_data_types_optional/README.md rename to modules/01_python_fundamentals/variables_data_types_optional/README.md diff --git a/01_python_fundamentals/variables_data_types_optional/examples/example_basic.py b/modules/01_python_fundamentals/variables_data_types_optional/examples/example_basic.py similarity index 100% rename from 01_python_fundamentals/variables_data_types_optional/examples/example_basic.py rename to modules/01_python_fundamentals/variables_data_types_optional/examples/example_basic.py diff --git a/01_python_fundamentals/variables_data_types_optional/exercise/exercise_01.py b/modules/01_python_fundamentals/variables_data_types_optional/exercise/exercise_01.py similarity index 100% rename from 01_python_fundamentals/variables_data_types_optional/exercise/exercise_01.py rename to modules/01_python_fundamentals/variables_data_types_optional/exercise/exercise_01.py diff --git a/01_python_fundamentals/variables_data_types_optional/references/links.md b/modules/01_python_fundamentals/variables_data_types_optional/references/links.md similarity index 100% rename from 01_python_fundamentals/variables_data_types_optional/references/links.md rename to modules/01_python_fundamentals/variables_data_types_optional/references/links.md diff --git a/01_python_fundamentals/variables_data_types_optional/tests/test_basic.py b/modules/01_python_fundamentals/variables_data_types_optional/tests/test_basic.py similarity index 100% rename from 01_python_fundamentals/variables_data_types_optional/tests/test_basic.py rename to modules/01_python_fundamentals/variables_data_types_optional/tests/test_basic.py diff --git a/02_intermediate_python/README.md b/modules/02_intermediate_python/README.md similarity index 100% rename from 02_intermediate_python/README.md rename to modules/02_intermediate_python/README.md diff --git a/02_intermediate_python/advanced_functions/README.md b/modules/02_intermediate_python/advanced_functions/README.md similarity index 100% rename from 02_intermediate_python/advanced_functions/README.md rename to modules/02_intermediate_python/advanced_functions/README.md diff --git a/02_intermediate_python/advanced_functions/examples/example_basic.py b/modules/02_intermediate_python/advanced_functions/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/advanced_functions/examples/example_basic.py rename to modules/02_intermediate_python/advanced_functions/examples/example_basic.py diff --git a/02_intermediate_python/advanced_functions/exercise/exercise_01.py b/modules/02_intermediate_python/advanced_functions/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/advanced_functions/exercise/exercise_01.py rename to modules/02_intermediate_python/advanced_functions/exercise/exercise_01.py diff --git a/02_intermediate_python/advanced_functions/references/links.md b/modules/02_intermediate_python/advanced_functions/references/links.md similarity index 100% rename from 02_intermediate_python/advanced_functions/references/links.md rename to modules/02_intermediate_python/advanced_functions/references/links.md diff --git a/02_intermediate_python/advanced_functions/tests/test_basic.py b/modules/02_intermediate_python/advanced_functions/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/advanced_functions/tests/test_basic.py rename to modules/02_intermediate_python/advanced_functions/tests/test_basic.py diff --git a/02_intermediate_python/basic_context_managers/README.md b/modules/02_intermediate_python/basic_context_managers/README.md similarity index 100% rename from 02_intermediate_python/basic_context_managers/README.md rename to modules/02_intermediate_python/basic_context_managers/README.md diff --git a/02_intermediate_python/basic_context_managers/examples/example_basic.py b/modules/02_intermediate_python/basic_context_managers/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/basic_context_managers/examples/example_basic.py rename to modules/02_intermediate_python/basic_context_managers/examples/example_basic.py diff --git a/02_intermediate_python/basic_context_managers/exercise/exercise_01.py b/modules/02_intermediate_python/basic_context_managers/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/basic_context_managers/exercise/exercise_01.py rename to modules/02_intermediate_python/basic_context_managers/exercise/exercise_01.py diff --git a/02_intermediate_python/basic_context_managers/references/links.md b/modules/02_intermediate_python/basic_context_managers/references/links.md similarity index 100% rename from 02_intermediate_python/basic_context_managers/references/links.md rename to modules/02_intermediate_python/basic_context_managers/references/links.md diff --git a/02_intermediate_python/basic_context_managers/tests/test_basic.py b/modules/02_intermediate_python/basic_context_managers/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/basic_context_managers/tests/test_basic.py rename to modules/02_intermediate_python/basic_context_managers/tests/test_basic.py diff --git a/02_intermediate_python/basic_decorators/README.md b/modules/02_intermediate_python/basic_decorators/README.md similarity index 100% rename from 02_intermediate_python/basic_decorators/README.md rename to modules/02_intermediate_python/basic_decorators/README.md diff --git a/02_intermediate_python/basic_decorators/examples/example_basic.py b/modules/02_intermediate_python/basic_decorators/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/basic_decorators/examples/example_basic.py rename to modules/02_intermediate_python/basic_decorators/examples/example_basic.py diff --git a/02_intermediate_python/basic_decorators/exercise/exercise_01.py b/modules/02_intermediate_python/basic_decorators/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/basic_decorators/exercise/exercise_01.py rename to modules/02_intermediate_python/basic_decorators/exercise/exercise_01.py diff --git a/02_intermediate_python/basic_decorators/references/links.md b/modules/02_intermediate_python/basic_decorators/references/links.md similarity index 100% rename from 02_intermediate_python/basic_decorators/references/links.md rename to modules/02_intermediate_python/basic_decorators/references/links.md diff --git a/02_intermediate_python/basic_decorators/tests/test_basic.py b/modules/02_intermediate_python/basic_decorators/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/basic_decorators/tests/test_basic.py rename to modules/02_intermediate_python/basic_decorators/tests/test_basic.py diff --git a/02_intermediate_python/basic_iterators/README.md b/modules/02_intermediate_python/basic_iterators/README.md similarity index 100% rename from 02_intermediate_python/basic_iterators/README.md rename to modules/02_intermediate_python/basic_iterators/README.md diff --git a/02_intermediate_python/basic_iterators/examples/example_basic.py b/modules/02_intermediate_python/basic_iterators/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/basic_iterators/examples/example_basic.py rename to modules/02_intermediate_python/basic_iterators/examples/example_basic.py diff --git a/02_intermediate_python/basic_iterators/exercise/exercise_01.py b/modules/02_intermediate_python/basic_iterators/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/basic_iterators/exercise/exercise_01.py rename to modules/02_intermediate_python/basic_iterators/exercise/exercise_01.py diff --git a/02_intermediate_python/basic_iterators/references/links.md b/modules/02_intermediate_python/basic_iterators/references/links.md similarity index 100% rename from 02_intermediate_python/basic_iterators/references/links.md rename to modules/02_intermediate_python/basic_iterators/references/links.md diff --git a/02_intermediate_python/basic_iterators/tests/test_basic.py b/modules/02_intermediate_python/basic_iterators/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/basic_iterators/tests/test_basic.py rename to modules/02_intermediate_python/basic_iterators/tests/test_basic.py diff --git a/02_intermediate_python/closures/README.md b/modules/02_intermediate_python/closures/README.md similarity index 100% rename from 02_intermediate_python/closures/README.md rename to modules/02_intermediate_python/closures/README.md diff --git a/02_intermediate_python/closures/examples/example_basic.py b/modules/02_intermediate_python/closures/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/closures/examples/example_basic.py rename to modules/02_intermediate_python/closures/examples/example_basic.py diff --git a/02_intermediate_python/closures/exercise/exercise_01.py b/modules/02_intermediate_python/closures/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/closures/exercise/exercise_01.py rename to modules/02_intermediate_python/closures/exercise/exercise_01.py diff --git a/02_intermediate_python/closures/references/links.md b/modules/02_intermediate_python/closures/references/links.md similarity index 100% rename from 02_intermediate_python/closures/references/links.md rename to modules/02_intermediate_python/closures/references/links.md diff --git a/02_intermediate_python/closures/tests/test_basic.py b/modules/02_intermediate_python/closures/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/closures/tests/test_basic.py rename to modules/02_intermediate_python/closures/tests/test_basic.py diff --git a/02_intermediate_python/collections_module/README.md b/modules/02_intermediate_python/collections_module/README.md similarity index 100% rename from 02_intermediate_python/collections_module/README.md rename to modules/02_intermediate_python/collections_module/README.md diff --git a/02_intermediate_python/collections_module/examples/example_basic.py b/modules/02_intermediate_python/collections_module/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/collections_module/examples/example_basic.py rename to modules/02_intermediate_python/collections_module/examples/example_basic.py diff --git a/02_intermediate_python/collections_module/exercise/exercise_01.py b/modules/02_intermediate_python/collections_module/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/collections_module/exercise/exercise_01.py rename to modules/02_intermediate_python/collections_module/exercise/exercise_01.py diff --git a/02_intermediate_python/collections_module/references/links.md b/modules/02_intermediate_python/collections_module/references/links.md similarity index 100% rename from 02_intermediate_python/collections_module/references/links.md rename to modules/02_intermediate_python/collections_module/references/links.md diff --git a/02_intermediate_python/collections_module/tests/test_basic.py b/modules/02_intermediate_python/collections_module/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/collections_module/tests/test_basic.py rename to modules/02_intermediate_python/collections_module/tests/test_basic.py diff --git a/02_intermediate_python/csv_json/README.md b/modules/02_intermediate_python/csv_json/README.md similarity index 100% rename from 02_intermediate_python/csv_json/README.md rename to modules/02_intermediate_python/csv_json/README.md diff --git a/02_intermediate_python/csv_json/examples/example_basic.py b/modules/02_intermediate_python/csv_json/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/csv_json/examples/example_basic.py rename to modules/02_intermediate_python/csv_json/examples/example_basic.py diff --git a/02_intermediate_python/csv_json/exercise/exercise_01.py b/modules/02_intermediate_python/csv_json/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/csv_json/exercise/exercise_01.py rename to modules/02_intermediate_python/csv_json/exercise/exercise_01.py diff --git a/02_intermediate_python/csv_json/references/links.md b/modules/02_intermediate_python/csv_json/references/links.md similarity index 100% rename from 02_intermediate_python/csv_json/references/links.md rename to modules/02_intermediate_python/csv_json/references/links.md diff --git a/02_intermediate_python/csv_json/tests/test_basic.py b/modules/02_intermediate_python/csv_json/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/csv_json/tests/test_basic.py rename to modules/02_intermediate_python/csv_json/tests/test_basic.py diff --git a/02_intermediate_python/datetime_time/README.md b/modules/02_intermediate_python/datetime_time/README.md similarity index 100% rename from 02_intermediate_python/datetime_time/README.md rename to modules/02_intermediate_python/datetime_time/README.md diff --git a/02_intermediate_python/datetime_time/examples/example_basic.py b/modules/02_intermediate_python/datetime_time/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/datetime_time/examples/example_basic.py rename to modules/02_intermediate_python/datetime_time/examples/example_basic.py diff --git a/02_intermediate_python/datetime_time/exercise/exercise_01.py b/modules/02_intermediate_python/datetime_time/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/datetime_time/exercise/exercise_01.py rename to modules/02_intermediate_python/datetime_time/exercise/exercise_01.py diff --git a/02_intermediate_python/datetime_time/references/links.md b/modules/02_intermediate_python/datetime_time/references/links.md similarity index 100% rename from 02_intermediate_python/datetime_time/references/links.md rename to modules/02_intermediate_python/datetime_time/references/links.md diff --git a/02_intermediate_python/datetime_time/tests/test_basic.py b/modules/02_intermediate_python/datetime_time/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/datetime_time/tests/test_basic.py rename to modules/02_intermediate_python/datetime_time/tests/test_basic.py diff --git a/02_intermediate_python/exception_handling/README.md b/modules/02_intermediate_python/exception_handling/README.md similarity index 100% rename from 02_intermediate_python/exception_handling/README.md rename to modules/02_intermediate_python/exception_handling/README.md diff --git a/02_intermediate_python/exception_handling/examples/example_basic.py b/modules/02_intermediate_python/exception_handling/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/exception_handling/examples/example_basic.py rename to modules/02_intermediate_python/exception_handling/examples/example_basic.py diff --git a/02_intermediate_python/exception_handling/exercise/exercise_01.py b/modules/02_intermediate_python/exception_handling/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/exception_handling/exercise/exercise_01.py rename to modules/02_intermediate_python/exception_handling/exercise/exercise_01.py diff --git a/02_intermediate_python/exception_handling/references/links.md b/modules/02_intermediate_python/exception_handling/references/links.md similarity index 100% rename from 02_intermediate_python/exception_handling/references/links.md rename to modules/02_intermediate_python/exception_handling/references/links.md diff --git a/02_intermediate_python/exception_handling/tests/test_basic.py b/modules/02_intermediate_python/exception_handling/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/exception_handling/tests/test_basic.py rename to modules/02_intermediate_python/exception_handling/tests/test_basic.py diff --git a/02_intermediate_python/generators/README.md b/modules/02_intermediate_python/generators/README.md similarity index 100% rename from 02_intermediate_python/generators/README.md rename to modules/02_intermediate_python/generators/README.md diff --git a/02_intermediate_python/generators/examples/example_basic.py b/modules/02_intermediate_python/generators/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/generators/examples/example_basic.py rename to modules/02_intermediate_python/generators/examples/example_basic.py diff --git a/02_intermediate_python/generators/exercise/exercise_01.py b/modules/02_intermediate_python/generators/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/generators/exercise/exercise_01.py rename to modules/02_intermediate_python/generators/exercise/exercise_01.py diff --git a/02_intermediate_python/generators/references/links.md b/modules/02_intermediate_python/generators/references/links.md similarity index 100% rename from 02_intermediate_python/generators/references/links.md rename to modules/02_intermediate_python/generators/references/links.md diff --git a/02_intermediate_python/generators/tests/test_basic.py b/modules/02_intermediate_python/generators/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/generators/tests/test_basic.py rename to modules/02_intermediate_python/generators/tests/test_basic.py diff --git a/02_intermediate_python/itertools/README.md b/modules/02_intermediate_python/itertools/README.md similarity index 100% rename from 02_intermediate_python/itertools/README.md rename to modules/02_intermediate_python/itertools/README.md diff --git a/02_intermediate_python/itertools/examples/example_basic.py b/modules/02_intermediate_python/itertools/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/itertools/examples/example_basic.py rename to modules/02_intermediate_python/itertools/examples/example_basic.py diff --git a/02_intermediate_python/itertools/exercise/exercise_01.py b/modules/02_intermediate_python/itertools/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/itertools/exercise/exercise_01.py rename to modules/02_intermediate_python/itertools/exercise/exercise_01.py diff --git a/02_intermediate_python/itertools/references/links.md b/modules/02_intermediate_python/itertools/references/links.md similarity index 100% rename from 02_intermediate_python/itertools/references/links.md rename to modules/02_intermediate_python/itertools/references/links.md diff --git a/02_intermediate_python/itertools/tests/test_basic.py b/modules/02_intermediate_python/itertools/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/itertools/tests/test_basic.py rename to modules/02_intermediate_python/itertools/tests/test_basic.py diff --git a/02_intermediate_python/modules_packages/README.md b/modules/02_intermediate_python/modules_packages/README.md similarity index 100% rename from 02_intermediate_python/modules_packages/README.md rename to modules/02_intermediate_python/modules_packages/README.md diff --git a/02_intermediate_python/modules_packages/examples/example_basic.py b/modules/02_intermediate_python/modules_packages/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/modules_packages/examples/example_basic.py rename to modules/02_intermediate_python/modules_packages/examples/example_basic.py diff --git a/02_intermediate_python/modules_packages/exercise/exercise_01.py b/modules/02_intermediate_python/modules_packages/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/modules_packages/exercise/exercise_01.py rename to modules/02_intermediate_python/modules_packages/exercise/exercise_01.py diff --git a/02_intermediate_python/modules_packages/references/links.md b/modules/02_intermediate_python/modules_packages/references/links.md similarity index 100% rename from 02_intermediate_python/modules_packages/references/links.md rename to modules/02_intermediate_python/modules_packages/references/links.md diff --git a/02_intermediate_python/modules_packages/tests/test_basic.py b/modules/02_intermediate_python/modules_packages/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/modules_packages/tests/test_basic.py rename to modules/02_intermediate_python/modules_packages/tests/test_basic.py diff --git a/02_intermediate_python/pathlib/README.md b/modules/02_intermediate_python/pathlib/README.md similarity index 100% rename from 02_intermediate_python/pathlib/README.md rename to modules/02_intermediate_python/pathlib/README.md diff --git a/02_intermediate_python/pathlib/examples/example_basic.py b/modules/02_intermediate_python/pathlib/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/pathlib/examples/example_basic.py rename to modules/02_intermediate_python/pathlib/examples/example_basic.py diff --git a/02_intermediate_python/pathlib/exercise/exercise_01.py b/modules/02_intermediate_python/pathlib/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/pathlib/exercise/exercise_01.py rename to modules/02_intermediate_python/pathlib/exercise/exercise_01.py diff --git a/02_intermediate_python/pathlib/references/links.md b/modules/02_intermediate_python/pathlib/references/links.md similarity index 100% rename from 02_intermediate_python/pathlib/references/links.md rename to modules/02_intermediate_python/pathlib/references/links.md diff --git a/02_intermediate_python/pathlib/tests/test_basic.py b/modules/02_intermediate_python/pathlib/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/pathlib/tests/test_basic.py rename to modules/02_intermediate_python/pathlib/tests/test_basic.py diff --git a/02_intermediate_python/regex_optional/README.md b/modules/02_intermediate_python/regex_optional/README.md similarity index 100% rename from 02_intermediate_python/regex_optional/README.md rename to modules/02_intermediate_python/regex_optional/README.md diff --git a/02_intermediate_python/regex_optional/examples/example_basic.py b/modules/02_intermediate_python/regex_optional/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/regex_optional/examples/example_basic.py rename to modules/02_intermediate_python/regex_optional/examples/example_basic.py diff --git a/02_intermediate_python/regex_optional/exercise/exercise_01.py b/modules/02_intermediate_python/regex_optional/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/regex_optional/exercise/exercise_01.py rename to modules/02_intermediate_python/regex_optional/exercise/exercise_01.py diff --git a/02_intermediate_python/regex_optional/references/links.md b/modules/02_intermediate_python/regex_optional/references/links.md similarity index 100% rename from 02_intermediate_python/regex_optional/references/links.md rename to modules/02_intermediate_python/regex_optional/references/links.md diff --git a/02_intermediate_python/regex_optional/tests/test_basic.py b/modules/02_intermediate_python/regex_optional/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/regex_optional/tests/test_basic.py rename to modules/02_intermediate_python/regex_optional/tests/test_basic.py diff --git a/02_intermediate_python/text_file_handling/README.md b/modules/02_intermediate_python/text_file_handling/README.md similarity index 100% rename from 02_intermediate_python/text_file_handling/README.md rename to modules/02_intermediate_python/text_file_handling/README.md diff --git a/02_intermediate_python/text_file_handling/examples/example_basic.py b/modules/02_intermediate_python/text_file_handling/examples/example_basic.py similarity index 100% rename from 02_intermediate_python/text_file_handling/examples/example_basic.py rename to modules/02_intermediate_python/text_file_handling/examples/example_basic.py diff --git a/02_intermediate_python/text_file_handling/exercise/exercise_01.py b/modules/02_intermediate_python/text_file_handling/exercise/exercise_01.py similarity index 100% rename from 02_intermediate_python/text_file_handling/exercise/exercise_01.py rename to modules/02_intermediate_python/text_file_handling/exercise/exercise_01.py diff --git a/02_intermediate_python/text_file_handling/references/links.md b/modules/02_intermediate_python/text_file_handling/references/links.md similarity index 100% rename from 02_intermediate_python/text_file_handling/references/links.md rename to modules/02_intermediate_python/text_file_handling/references/links.md diff --git a/02_intermediate_python/text_file_handling/tests/test_basic.py b/modules/02_intermediate_python/text_file_handling/tests/test_basic.py similarity index 100% rename from 02_intermediate_python/text_file_handling/tests/test_basic.py rename to modules/02_intermediate_python/text_file_handling/tests/test_basic.py diff --git a/03_basic_intermediate_oop/README.md b/modules/03_basic_intermediate_oop/README.md similarity index 100% rename from 03_basic_intermediate_oop/README.md rename to modules/03_basic_intermediate_oop/README.md diff --git a/03_basic_intermediate_oop/attributes_methods/README.md b/modules/03_basic_intermediate_oop/attributes_methods/README.md similarity index 100% rename from 03_basic_intermediate_oop/attributes_methods/README.md rename to modules/03_basic_intermediate_oop/attributes_methods/README.md diff --git a/03_basic_intermediate_oop/attributes_methods/examples/example_basic.py b/modules/03_basic_intermediate_oop/attributes_methods/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/attributes_methods/examples/example_basic.py rename to modules/03_basic_intermediate_oop/attributes_methods/examples/example_basic.py diff --git a/03_basic_intermediate_oop/attributes_methods/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/attributes_methods/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/attributes_methods/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/attributes_methods/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/attributes_methods/references/links.md b/modules/03_basic_intermediate_oop/attributes_methods/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/attributes_methods/references/links.md rename to modules/03_basic_intermediate_oop/attributes_methods/references/links.md diff --git a/03_basic_intermediate_oop/attributes_methods/tests/test_basic.py b/modules/03_basic_intermediate_oop/attributes_methods/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/attributes_methods/tests/test_basic.py rename to modules/03_basic_intermediate_oop/attributes_methods/tests/test_basic.py diff --git a/03_basic_intermediate_oop/basic_descriptors/README.md b/modules/03_basic_intermediate_oop/basic_descriptors/README.md similarity index 100% rename from 03_basic_intermediate_oop/basic_descriptors/README.md rename to modules/03_basic_intermediate_oop/basic_descriptors/README.md diff --git a/03_basic_intermediate_oop/basic_descriptors/examples/example_basic.py b/modules/03_basic_intermediate_oop/basic_descriptors/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/basic_descriptors/examples/example_basic.py rename to modules/03_basic_intermediate_oop/basic_descriptors/examples/example_basic.py diff --git a/03_basic_intermediate_oop/basic_descriptors/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/basic_descriptors/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/basic_descriptors/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/basic_descriptors/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/basic_descriptors/references/links.md b/modules/03_basic_intermediate_oop/basic_descriptors/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/basic_descriptors/references/links.md rename to modules/03_basic_intermediate_oop/basic_descriptors/references/links.md diff --git a/03_basic_intermediate_oop/basic_descriptors/tests/test_basic.py b/modules/03_basic_intermediate_oop/basic_descriptors/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/basic_descriptors/tests/test_basic.py rename to modules/03_basic_intermediate_oop/basic_descriptors/tests/test_basic.py diff --git a/03_basic_intermediate_oop/basic_inheritance/README.md b/modules/03_basic_intermediate_oop/basic_inheritance/README.md similarity index 100% rename from 03_basic_intermediate_oop/basic_inheritance/README.md rename to modules/03_basic_intermediate_oop/basic_inheritance/README.md diff --git a/03_basic_intermediate_oop/basic_inheritance/examples/example_basic.py b/modules/03_basic_intermediate_oop/basic_inheritance/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/basic_inheritance/examples/example_basic.py rename to modules/03_basic_intermediate_oop/basic_inheritance/examples/example_basic.py diff --git a/03_basic_intermediate_oop/basic_inheritance/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/basic_inheritance/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/basic_inheritance/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/basic_inheritance/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/basic_inheritance/references/links.md b/modules/03_basic_intermediate_oop/basic_inheritance/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/basic_inheritance/references/links.md rename to modules/03_basic_intermediate_oop/basic_inheritance/references/links.md diff --git a/03_basic_intermediate_oop/basic_inheritance/tests/test_basic.py b/modules/03_basic_intermediate_oop/basic_inheritance/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/basic_inheritance/tests/test_basic.py rename to modules/03_basic_intermediate_oop/basic_inheritance/tests/test_basic.py diff --git a/03_basic_intermediate_oop/classes_objects/README.md b/modules/03_basic_intermediate_oop/classes_objects/README.md similarity index 100% rename from 03_basic_intermediate_oop/classes_objects/README.md rename to modules/03_basic_intermediate_oop/classes_objects/README.md diff --git a/03_basic_intermediate_oop/classes_objects/examples/example_basic.py b/modules/03_basic_intermediate_oop/classes_objects/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/classes_objects/examples/example_basic.py rename to modules/03_basic_intermediate_oop/classes_objects/examples/example_basic.py diff --git a/03_basic_intermediate_oop/classes_objects/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/classes_objects/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/classes_objects/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/classes_objects/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/classes_objects/references/links.md b/modules/03_basic_intermediate_oop/classes_objects/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/classes_objects/references/links.md rename to modules/03_basic_intermediate_oop/classes_objects/references/links.md diff --git a/03_basic_intermediate_oop/classes_objects/tests/test_basic.py b/modules/03_basic_intermediate_oop/classes_objects/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/classes_objects/tests/test_basic.py rename to modules/03_basic_intermediate_oop/classes_objects/tests/test_basic.py diff --git a/03_basic_intermediate_oop/composition_vs_inheritance/README.md b/modules/03_basic_intermediate_oop/composition_vs_inheritance/README.md similarity index 100% rename from 03_basic_intermediate_oop/composition_vs_inheritance/README.md rename to modules/03_basic_intermediate_oop/composition_vs_inheritance/README.md diff --git a/03_basic_intermediate_oop/composition_vs_inheritance/examples/example_basic.py b/modules/03_basic_intermediate_oop/composition_vs_inheritance/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/composition_vs_inheritance/examples/example_basic.py rename to modules/03_basic_intermediate_oop/composition_vs_inheritance/examples/example_basic.py diff --git a/03_basic_intermediate_oop/composition_vs_inheritance/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/composition_vs_inheritance/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/composition_vs_inheritance/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/composition_vs_inheritance/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/composition_vs_inheritance/references/links.md b/modules/03_basic_intermediate_oop/composition_vs_inheritance/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/composition_vs_inheritance/references/links.md rename to modules/03_basic_intermediate_oop/composition_vs_inheritance/references/links.md diff --git a/03_basic_intermediate_oop/composition_vs_inheritance/tests/test_basic.py b/modules/03_basic_intermediate_oop/composition_vs_inheritance/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/composition_vs_inheritance/tests/test_basic.py rename to modules/03_basic_intermediate_oop/composition_vs_inheritance/tests/test_basic.py diff --git a/03_basic_intermediate_oop/dataclasses_optional/README.md b/modules/03_basic_intermediate_oop/dataclasses_optional/README.md similarity index 100% rename from 03_basic_intermediate_oop/dataclasses_optional/README.md rename to modules/03_basic_intermediate_oop/dataclasses_optional/README.md diff --git a/03_basic_intermediate_oop/dataclasses_optional/examples/example_basic.py b/modules/03_basic_intermediate_oop/dataclasses_optional/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/dataclasses_optional/examples/example_basic.py rename to modules/03_basic_intermediate_oop/dataclasses_optional/examples/example_basic.py diff --git a/03_basic_intermediate_oop/dataclasses_optional/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/dataclasses_optional/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/dataclasses_optional/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/dataclasses_optional/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/dataclasses_optional/references/links.md b/modules/03_basic_intermediate_oop/dataclasses_optional/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/dataclasses_optional/references/links.md rename to modules/03_basic_intermediate_oop/dataclasses_optional/references/links.md diff --git a/03_basic_intermediate_oop/dataclasses_optional/tests/test_basic.py b/modules/03_basic_intermediate_oop/dataclasses_optional/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/dataclasses_optional/tests/test_basic.py rename to modules/03_basic_intermediate_oop/dataclasses_optional/tests/test_basic.py diff --git a/03_basic_intermediate_oop/encapsulation/README.md b/modules/03_basic_intermediate_oop/encapsulation/README.md similarity index 100% rename from 03_basic_intermediate_oop/encapsulation/README.md rename to modules/03_basic_intermediate_oop/encapsulation/README.md diff --git a/03_basic_intermediate_oop/encapsulation/examples/example_basic.py b/modules/03_basic_intermediate_oop/encapsulation/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/encapsulation/examples/example_basic.py rename to modules/03_basic_intermediate_oop/encapsulation/examples/example_basic.py diff --git a/03_basic_intermediate_oop/encapsulation/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/encapsulation/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/encapsulation/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/encapsulation/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/encapsulation/references/links.md b/modules/03_basic_intermediate_oop/encapsulation/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/encapsulation/references/links.md rename to modules/03_basic_intermediate_oop/encapsulation/references/links.md diff --git a/03_basic_intermediate_oop/encapsulation/tests/test_basic.py b/modules/03_basic_intermediate_oop/encapsulation/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/encapsulation/tests/test_basic.py rename to modules/03_basic_intermediate_oop/encapsulation/tests/test_basic.py diff --git a/03_basic_intermediate_oop/init_self/README.md b/modules/03_basic_intermediate_oop/init_self/README.md similarity index 100% rename from 03_basic_intermediate_oop/init_self/README.md rename to modules/03_basic_intermediate_oop/init_self/README.md diff --git a/03_basic_intermediate_oop/init_self/examples/example_basic.py b/modules/03_basic_intermediate_oop/init_self/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/init_self/examples/example_basic.py rename to modules/03_basic_intermediate_oop/init_self/examples/example_basic.py diff --git a/03_basic_intermediate_oop/init_self/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/init_self/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/init_self/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/init_self/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/init_self/references/links.md b/modules/03_basic_intermediate_oop/init_self/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/init_self/references/links.md rename to modules/03_basic_intermediate_oop/init_self/references/links.md diff --git a/03_basic_intermediate_oop/init_self/tests/test_basic.py b/modules/03_basic_intermediate_oop/init_self/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/init_self/tests/test_basic.py rename to modules/03_basic_intermediate_oop/init_self/tests/test_basic.py diff --git a/03_basic_intermediate_oop/multiple_inheritance/README.md b/modules/03_basic_intermediate_oop/multiple_inheritance/README.md similarity index 100% rename from 03_basic_intermediate_oop/multiple_inheritance/README.md rename to modules/03_basic_intermediate_oop/multiple_inheritance/README.md diff --git a/03_basic_intermediate_oop/multiple_inheritance/examples/example_basic.py b/modules/03_basic_intermediate_oop/multiple_inheritance/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/multiple_inheritance/examples/example_basic.py rename to modules/03_basic_intermediate_oop/multiple_inheritance/examples/example_basic.py diff --git a/03_basic_intermediate_oop/multiple_inheritance/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/multiple_inheritance/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/multiple_inheritance/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/multiple_inheritance/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/multiple_inheritance/references/links.md b/modules/03_basic_intermediate_oop/multiple_inheritance/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/multiple_inheritance/references/links.md rename to modules/03_basic_intermediate_oop/multiple_inheritance/references/links.md diff --git a/03_basic_intermediate_oop/multiple_inheritance/tests/test_basic.py b/modules/03_basic_intermediate_oop/multiple_inheritance/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/multiple_inheritance/tests/test_basic.py rename to modules/03_basic_intermediate_oop/multiple_inheritance/tests/test_basic.py diff --git a/03_basic_intermediate_oop/polymorphism/README.md b/modules/03_basic_intermediate_oop/polymorphism/README.md similarity index 100% rename from 03_basic_intermediate_oop/polymorphism/README.md rename to modules/03_basic_intermediate_oop/polymorphism/README.md diff --git a/03_basic_intermediate_oop/polymorphism/examples/example_basic.py b/modules/03_basic_intermediate_oop/polymorphism/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/polymorphism/examples/example_basic.py rename to modules/03_basic_intermediate_oop/polymorphism/examples/example_basic.py diff --git a/03_basic_intermediate_oop/polymorphism/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/polymorphism/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/polymorphism/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/polymorphism/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/polymorphism/references/links.md b/modules/03_basic_intermediate_oop/polymorphism/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/polymorphism/references/links.md rename to modules/03_basic_intermediate_oop/polymorphism/references/links.md diff --git a/03_basic_intermediate_oop/polymorphism/tests/test_basic.py b/modules/03_basic_intermediate_oop/polymorphism/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/polymorphism/tests/test_basic.py rename to modules/03_basic_intermediate_oop/polymorphism/tests/test_basic.py diff --git a/03_basic_intermediate_oop/properties/README.md b/modules/03_basic_intermediate_oop/properties/README.md similarity index 100% rename from 03_basic_intermediate_oop/properties/README.md rename to modules/03_basic_intermediate_oop/properties/README.md diff --git a/03_basic_intermediate_oop/properties/examples/example_basic.py b/modules/03_basic_intermediate_oop/properties/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/properties/examples/example_basic.py rename to modules/03_basic_intermediate_oop/properties/examples/example_basic.py diff --git a/03_basic_intermediate_oop/properties/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/properties/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/properties/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/properties/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/properties/references/links.md b/modules/03_basic_intermediate_oop/properties/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/properties/references/links.md rename to modules/03_basic_intermediate_oop/properties/references/links.md diff --git a/03_basic_intermediate_oop/properties/tests/test_basic.py b/modules/03_basic_intermediate_oop/properties/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/properties/tests/test_basic.py rename to modules/03_basic_intermediate_oop/properties/tests/test_basic.py diff --git a/03_basic_intermediate_oop/special_methods/README.md b/modules/03_basic_intermediate_oop/special_methods/README.md similarity index 100% rename from 03_basic_intermediate_oop/special_methods/README.md rename to modules/03_basic_intermediate_oop/special_methods/README.md diff --git a/03_basic_intermediate_oop/special_methods/examples/example_basic.py b/modules/03_basic_intermediate_oop/special_methods/examples/example_basic.py similarity index 100% rename from 03_basic_intermediate_oop/special_methods/examples/example_basic.py rename to modules/03_basic_intermediate_oop/special_methods/examples/example_basic.py diff --git a/03_basic_intermediate_oop/special_methods/exercise/exercise_01.py b/modules/03_basic_intermediate_oop/special_methods/exercise/exercise_01.py similarity index 100% rename from 03_basic_intermediate_oop/special_methods/exercise/exercise_01.py rename to modules/03_basic_intermediate_oop/special_methods/exercise/exercise_01.py diff --git a/03_basic_intermediate_oop/special_methods/references/links.md b/modules/03_basic_intermediate_oop/special_methods/references/links.md similarity index 100% rename from 03_basic_intermediate_oop/special_methods/references/links.md rename to modules/03_basic_intermediate_oop/special_methods/references/links.md diff --git a/03_basic_intermediate_oop/special_methods/tests/test_basic.py b/modules/03_basic_intermediate_oop/special_methods/tests/test_basic.py similarity index 100% rename from 03_basic_intermediate_oop/special_methods/tests/test_basic.py rename to modules/03_basic_intermediate_oop/special_methods/tests/test_basic.py diff --git a/04_cpython_internals_advanced/01_gil_history/README.md b/modules/04_cpython_internals_advanced/01_gil_history/README.md similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/README.md rename to modules/04_cpython_internals_advanced/01_gil_history/README.md diff --git a/04_cpython_internals_advanced/01_gil_history/examples/example_basic.py b/modules/04_cpython_internals_advanced/01_gil_history/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/examples/example_basic.py rename to modules/04_cpython_internals_advanced/01_gil_history/examples/example_basic.py diff --git a/04_cpython_internals_advanced/01_gil_history/examples/gil_demonstration.py b/modules/04_cpython_internals_advanced/01_gil_history/examples/gil_demonstration.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/examples/gil_demonstration.py rename to modules/04_cpython_internals_advanced/01_gil_history/examples/gil_demonstration.py diff --git a/04_cpython_internals_advanced/01_gil_history/examples/gil_vs_multiprocessing.py b/modules/04_cpython_internals_advanced/01_gil_history/examples/gil_vs_multiprocessing.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/examples/gil_vs_multiprocessing.py rename to modules/04_cpython_internals_advanced/01_gil_history/examples/gil_vs_multiprocessing.py diff --git a/04_cpython_internals_advanced/01_gil_history/exercise/advanced_exercise.py b/modules/04_cpython_internals_advanced/01_gil_history/exercise/advanced_exercise.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/exercise/advanced_exercise.py rename to modules/04_cpython_internals_advanced/01_gil_history/exercise/advanced_exercise.py diff --git a/04_cpython_internals_advanced/01_gil_history/exercise/basic_exercise.py b/modules/04_cpython_internals_advanced/01_gil_history/exercise/basic_exercise.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/exercise/basic_exercise.py rename to modules/04_cpython_internals_advanced/01_gil_history/exercise/basic_exercise.py diff --git a/04_cpython_internals_advanced/01_gil_history/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/01_gil_history/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/01_gil_history/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/01_gil_history/exercise/intermediate_exercise.py b/modules/04_cpython_internals_advanced/01_gil_history/exercise/intermediate_exercise.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/exercise/intermediate_exercise.py rename to modules/04_cpython_internals_advanced/01_gil_history/exercise/intermediate_exercise.py diff --git a/04_cpython_internals_advanced/01_gil_history/references/links.md b/modules/04_cpython_internals_advanced/01_gil_history/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/references/links.md rename to modules/04_cpython_internals_advanced/01_gil_history/references/links.md diff --git a/04_cpython_internals_advanced/01_gil_history/tests/test_advanced.py b/modules/04_cpython_internals_advanced/01_gil_history/tests/test_advanced.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/tests/test_advanced.py rename to modules/04_cpython_internals_advanced/01_gil_history/tests/test_advanced.py diff --git a/04_cpython_internals_advanced/01_gil_history/tests/test_basic.py b/modules/04_cpython_internals_advanced/01_gil_history/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/tests/test_basic.py rename to modules/04_cpython_internals_advanced/01_gil_history/tests/test_basic.py diff --git a/04_cpython_internals_advanced/01_gil_history/tests/test_intermediate.py b/modules/04_cpython_internals_advanced/01_gil_history/tests/test_intermediate.py similarity index 100% rename from 04_cpython_internals_advanced/01_gil_history/tests/test_intermediate.py rename to modules/04_cpython_internals_advanced/01_gil_history/tests/test_intermediate.py diff --git a/04_cpython_internals_advanced/02_gil_limitations/README.md b/modules/04_cpython_internals_advanced/02_gil_limitations/README.md similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/README.md rename to modules/04_cpython_internals_advanced/02_gil_limitations/README.md diff --git a/04_cpython_internals_advanced/02_gil_limitations/examples/example_basic.py b/modules/04_cpython_internals_advanced/02_gil_limitations/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/examples/example_basic.py rename to modules/04_cpython_internals_advanced/02_gil_limitations/examples/example_basic.py diff --git a/04_cpython_internals_advanced/02_gil_limitations/examples/gil_contention_viz.py b/modules/04_cpython_internals_advanced/02_gil_limitations/examples/gil_contention_viz.py similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/examples/gil_contention_viz.py rename to modules/04_cpython_internals_advanced/02_gil_limitations/examples/gil_contention_viz.py diff --git a/04_cpython_internals_advanced/02_gil_limitations/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/02_gil_limitations/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/02_gil_limitations/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/02_gil_limitations/references/links.md b/modules/04_cpython_internals_advanced/02_gil_limitations/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/references/links.md rename to modules/04_cpython_internals_advanced/02_gil_limitations/references/links.md diff --git a/04_cpython_internals_advanced/02_gil_limitations/tests/test_basic.py b/modules/04_cpython_internals_advanced/02_gil_limitations/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/02_gil_limitations/tests/test_basic.py rename to modules/04_cpython_internals_advanced/02_gil_limitations/tests/test_basic.py diff --git a/04_cpython_internals_advanced/03_pep_703_free_threading/README.md b/modules/04_cpython_internals_advanced/03_pep_703_free_threading/README.md similarity index 100% rename from 04_cpython_internals_advanced/03_pep_703_free_threading/README.md rename to modules/04_cpython_internals_advanced/03_pep_703_free_threading/README.md diff --git a/04_cpython_internals_advanced/03_pep_703_free_threading/examples/example_basic.py b/modules/04_cpython_internals_advanced/03_pep_703_free_threading/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/03_pep_703_free_threading/examples/example_basic.py rename to modules/04_cpython_internals_advanced/03_pep_703_free_threading/examples/example_basic.py diff --git a/04_cpython_internals_advanced/03_pep_703_free_threading/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/03_pep_703_free_threading/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/03_pep_703_free_threading/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/03_pep_703_free_threading/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/03_pep_703_free_threading/references/links.md b/modules/04_cpython_internals_advanced/03_pep_703_free_threading/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/03_pep_703_free_threading/references/links.md rename to modules/04_cpython_internals_advanced/03_pep_703_free_threading/references/links.md diff --git a/04_cpython_internals_advanced/03_pep_703_free_threading/tests/test_basic.py b/modules/04_cpython_internals_advanced/03_pep_703_free_threading/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/03_pep_703_free_threading/tests/test_basic.py rename to modules/04_cpython_internals_advanced/03_pep_703_free_threading/tests/test_basic.py diff --git a/04_cpython_internals_advanced/04_free_threading_activation/README.md b/modules/04_cpython_internals_advanced/04_free_threading_activation/README.md similarity index 100% rename from 04_cpython_internals_advanced/04_free_threading_activation/README.md rename to modules/04_cpython_internals_advanced/04_free_threading_activation/README.md diff --git a/04_cpython_internals_advanced/04_free_threading_activation/examples/example_basic.py b/modules/04_cpython_internals_advanced/04_free_threading_activation/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/04_free_threading_activation/examples/example_basic.py rename to modules/04_cpython_internals_advanced/04_free_threading_activation/examples/example_basic.py diff --git a/04_cpython_internals_advanced/04_free_threading_activation/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/04_free_threading_activation/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/04_free_threading_activation/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/04_free_threading_activation/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/04_free_threading_activation/references/links.md b/modules/04_cpython_internals_advanced/04_free_threading_activation/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/04_free_threading_activation/references/links.md rename to modules/04_cpython_internals_advanced/04_free_threading_activation/references/links.md diff --git a/04_cpython_internals_advanced/04_free_threading_activation/tests/test_basic.py b/modules/04_cpython_internals_advanced/04_free_threading_activation/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/04_free_threading_activation/tests/test_basic.py rename to modules/04_cpython_internals_advanced/04_free_threading_activation/tests/test_basic.py diff --git a/04_cpython_internals_advanced/05_gil_free_architecture/README.md b/modules/04_cpython_internals_advanced/05_gil_free_architecture/README.md similarity index 100% rename from 04_cpython_internals_advanced/05_gil_free_architecture/README.md rename to modules/04_cpython_internals_advanced/05_gil_free_architecture/README.md diff --git a/04_cpython_internals_advanced/05_gil_free_architecture/examples/example_basic.py b/modules/04_cpython_internals_advanced/05_gil_free_architecture/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/05_gil_free_architecture/examples/example_basic.py rename to modules/04_cpython_internals_advanced/05_gil_free_architecture/examples/example_basic.py diff --git a/04_cpython_internals_advanced/05_gil_free_architecture/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/05_gil_free_architecture/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/05_gil_free_architecture/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/05_gil_free_architecture/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/05_gil_free_architecture/references/links.md b/modules/04_cpython_internals_advanced/05_gil_free_architecture/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/05_gil_free_architecture/references/links.md rename to modules/04_cpython_internals_advanced/05_gil_free_architecture/references/links.md diff --git a/04_cpython_internals_advanced/05_gil_free_architecture/tests/test_basic.py b/modules/04_cpython_internals_advanced/05_gil_free_architecture/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/05_gil_free_architecture/tests/test_basic.py rename to modules/04_cpython_internals_advanced/05_gil_free_architecture/tests/test_basic.py diff --git a/04_cpython_internals_advanced/06_biased_reference_counting/README.md b/modules/04_cpython_internals_advanced/06_biased_reference_counting/README.md similarity index 100% rename from 04_cpython_internals_advanced/06_biased_reference_counting/README.md rename to modules/04_cpython_internals_advanced/06_biased_reference_counting/README.md diff --git a/04_cpython_internals_advanced/06_biased_reference_counting/examples/example_basic.py b/modules/04_cpython_internals_advanced/06_biased_reference_counting/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/06_biased_reference_counting/examples/example_basic.py rename to modules/04_cpython_internals_advanced/06_biased_reference_counting/examples/example_basic.py diff --git a/04_cpython_internals_advanced/06_biased_reference_counting/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/06_biased_reference_counting/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/06_biased_reference_counting/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/06_biased_reference_counting/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/06_biased_reference_counting/references/links.md b/modules/04_cpython_internals_advanced/06_biased_reference_counting/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/06_biased_reference_counting/references/links.md rename to modules/04_cpython_internals_advanced/06_biased_reference_counting/references/links.md diff --git a/04_cpython_internals_advanced/06_biased_reference_counting/tests/test_basic.py b/modules/04_cpython_internals_advanced/06_biased_reference_counting/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/06_biased_reference_counting/tests/test_basic.py rename to modules/04_cpython_internals_advanced/06_biased_reference_counting/tests/test_basic.py diff --git a/04_cpython_internals_advanced/07_gc_thread_safe/README.md b/modules/04_cpython_internals_advanced/07_gc_thread_safe/README.md similarity index 100% rename from 04_cpython_internals_advanced/07_gc_thread_safe/README.md rename to modules/04_cpython_internals_advanced/07_gc_thread_safe/README.md diff --git a/04_cpython_internals_advanced/07_gc_thread_safe/examples/example_basic.py b/modules/04_cpython_internals_advanced/07_gc_thread_safe/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/07_gc_thread_safe/examples/example_basic.py rename to modules/04_cpython_internals_advanced/07_gc_thread_safe/examples/example_basic.py diff --git a/04_cpython_internals_advanced/07_gc_thread_safe/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/07_gc_thread_safe/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/07_gc_thread_safe/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/07_gc_thread_safe/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/07_gc_thread_safe/references/links.md b/modules/04_cpython_internals_advanced/07_gc_thread_safe/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/07_gc_thread_safe/references/links.md rename to modules/04_cpython_internals_advanced/07_gc_thread_safe/references/links.md diff --git a/04_cpython_internals_advanced/07_gc_thread_safe/tests/test_basic.py b/modules/04_cpython_internals_advanced/07_gc_thread_safe/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/07_gc_thread_safe/tests/test_basic.py rename to modules/04_cpython_internals_advanced/07_gc_thread_safe/tests/test_basic.py diff --git a/04_cpython_internals_advanced/08_performance_benchmarks/README.md b/modules/04_cpython_internals_advanced/08_performance_benchmarks/README.md similarity index 100% rename from 04_cpython_internals_advanced/08_performance_benchmarks/README.md rename to modules/04_cpython_internals_advanced/08_performance_benchmarks/README.md diff --git a/04_cpython_internals_advanced/08_performance_benchmarks/examples/example_basic.py b/modules/04_cpython_internals_advanced/08_performance_benchmarks/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/08_performance_benchmarks/examples/example_basic.py rename to modules/04_cpython_internals_advanced/08_performance_benchmarks/examples/example_basic.py diff --git a/04_cpython_internals_advanced/08_performance_benchmarks/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/08_performance_benchmarks/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/08_performance_benchmarks/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/08_performance_benchmarks/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/08_performance_benchmarks/references/links.md b/modules/04_cpython_internals_advanced/08_performance_benchmarks/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/08_performance_benchmarks/references/links.md rename to modules/04_cpython_internals_advanced/08_performance_benchmarks/references/links.md diff --git a/04_cpython_internals_advanced/08_performance_benchmarks/tests/test_basic.py b/modules/04_cpython_internals_advanced/08_performance_benchmarks/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/08_performance_benchmarks/tests/test_basic.py rename to modules/04_cpython_internals_advanced/08_performance_benchmarks/tests/test_basic.py diff --git a/04_cpython_internals_advanced/09_c_extensions_compatibility/README.md b/modules/04_cpython_internals_advanced/09_c_extensions_compatibility/README.md similarity index 100% rename from 04_cpython_internals_advanced/09_c_extensions_compatibility/README.md rename to modules/04_cpython_internals_advanced/09_c_extensions_compatibility/README.md diff --git a/04_cpython_internals_advanced/09_c_extensions_compatibility/examples/example_basic.py b/modules/04_cpython_internals_advanced/09_c_extensions_compatibility/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/09_c_extensions_compatibility/examples/example_basic.py rename to modules/04_cpython_internals_advanced/09_c_extensions_compatibility/examples/example_basic.py diff --git a/04_cpython_internals_advanced/09_c_extensions_compatibility/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/09_c_extensions_compatibility/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/09_c_extensions_compatibility/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/09_c_extensions_compatibility/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/09_c_extensions_compatibility/references/links.md b/modules/04_cpython_internals_advanced/09_c_extensions_compatibility/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/09_c_extensions_compatibility/references/links.md rename to modules/04_cpython_internals_advanced/09_c_extensions_compatibility/references/links.md diff --git a/04_cpython_internals_advanced/09_c_extensions_compatibility/tests/test_basic.py b/modules/04_cpython_internals_advanced/09_c_extensions_compatibility/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/09_c_extensions_compatibility/tests/test_basic.py rename to modules/04_cpython_internals_advanced/09_c_extensions_compatibility/tests/test_basic.py diff --git a/04_cpython_internals_advanced/10_subinterpreters_intro/README.md b/modules/04_cpython_internals_advanced/10_subinterpreters_intro/README.md similarity index 100% rename from 04_cpython_internals_advanced/10_subinterpreters_intro/README.md rename to modules/04_cpython_internals_advanced/10_subinterpreters_intro/README.md diff --git a/04_cpython_internals_advanced/10_subinterpreters_intro/examples/example_basic.py b/modules/04_cpython_internals_advanced/10_subinterpreters_intro/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/10_subinterpreters_intro/examples/example_basic.py rename to modules/04_cpython_internals_advanced/10_subinterpreters_intro/examples/example_basic.py diff --git a/04_cpython_internals_advanced/10_subinterpreters_intro/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/10_subinterpreters_intro/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/10_subinterpreters_intro/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/10_subinterpreters_intro/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/10_subinterpreters_intro/references/links.md b/modules/04_cpython_internals_advanced/10_subinterpreters_intro/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/10_subinterpreters_intro/references/links.md rename to modules/04_cpython_internals_advanced/10_subinterpreters_intro/references/links.md diff --git a/04_cpython_internals_advanced/10_subinterpreters_intro/tests/test_basic.py b/modules/04_cpython_internals_advanced/10_subinterpreters_intro/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/10_subinterpreters_intro/tests/test_basic.py rename to modules/04_cpython_internals_advanced/10_subinterpreters_intro/tests/test_basic.py diff --git a/04_cpython_internals_advanced/11_api_c_subinterpreters/README.md b/modules/04_cpython_internals_advanced/11_api_c_subinterpreters/README.md similarity index 100% rename from 04_cpython_internals_advanced/11_api_c_subinterpreters/README.md rename to modules/04_cpython_internals_advanced/11_api_c_subinterpreters/README.md diff --git a/04_cpython_internals_advanced/11_api_c_subinterpreters/examples/example_basic.py b/modules/04_cpython_internals_advanced/11_api_c_subinterpreters/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/11_api_c_subinterpreters/examples/example_basic.py rename to modules/04_cpython_internals_advanced/11_api_c_subinterpreters/examples/example_basic.py diff --git a/04_cpython_internals_advanced/11_api_c_subinterpreters/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/11_api_c_subinterpreters/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/11_api_c_subinterpreters/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/11_api_c_subinterpreters/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/11_api_c_subinterpreters/references/links.md b/modules/04_cpython_internals_advanced/11_api_c_subinterpreters/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/11_api_c_subinterpreters/references/links.md rename to modules/04_cpython_internals_advanced/11_api_c_subinterpreters/references/links.md diff --git a/04_cpython_internals_advanced/11_api_c_subinterpreters/tests/test_basic.py b/modules/04_cpython_internals_advanced/11_api_c_subinterpreters/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/11_api_c_subinterpreters/tests/test_basic.py rename to modules/04_cpython_internals_advanced/11_api_c_subinterpreters/tests/test_basic.py diff --git a/04_cpython_internals_advanced/12_api_python_subinterpreters/README.md b/modules/04_cpython_internals_advanced/12_api_python_subinterpreters/README.md similarity index 100% rename from 04_cpython_internals_advanced/12_api_python_subinterpreters/README.md rename to modules/04_cpython_internals_advanced/12_api_python_subinterpreters/README.md diff --git a/04_cpython_internals_advanced/12_api_python_subinterpreters/examples/example_basic.py b/modules/04_cpython_internals_advanced/12_api_python_subinterpreters/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/12_api_python_subinterpreters/examples/example_basic.py rename to modules/04_cpython_internals_advanced/12_api_python_subinterpreters/examples/example_basic.py diff --git a/04_cpython_internals_advanced/12_api_python_subinterpreters/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/12_api_python_subinterpreters/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/12_api_python_subinterpreters/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/12_api_python_subinterpreters/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/12_api_python_subinterpreters/references/links.md b/modules/04_cpython_internals_advanced/12_api_python_subinterpreters/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/12_api_python_subinterpreters/references/links.md rename to modules/04_cpython_internals_advanced/12_api_python_subinterpreters/references/links.md diff --git a/04_cpython_internals_advanced/12_api_python_subinterpreters/tests/test_basic.py b/modules/04_cpython_internals_advanced/12_api_python_subinterpreters/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/12_api_python_subinterpreters/tests/test_basic.py rename to modules/04_cpython_internals_advanced/12_api_python_subinterpreters/tests/test_basic.py diff --git a/04_cpython_internals_advanced/13_per_interpreter_gil/README.md b/modules/04_cpython_internals_advanced/13_per_interpreter_gil/README.md similarity index 100% rename from 04_cpython_internals_advanced/13_per_interpreter_gil/README.md rename to modules/04_cpython_internals_advanced/13_per_interpreter_gil/README.md diff --git a/04_cpython_internals_advanced/13_per_interpreter_gil/examples/example_basic.py b/modules/04_cpython_internals_advanced/13_per_interpreter_gil/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/13_per_interpreter_gil/examples/example_basic.py rename to modules/04_cpython_internals_advanced/13_per_interpreter_gil/examples/example_basic.py diff --git a/04_cpython_internals_advanced/13_per_interpreter_gil/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/13_per_interpreter_gil/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/13_per_interpreter_gil/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/13_per_interpreter_gil/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/13_per_interpreter_gil/references/links.md b/modules/04_cpython_internals_advanced/13_per_interpreter_gil/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/13_per_interpreter_gil/references/links.md rename to modules/04_cpython_internals_advanced/13_per_interpreter_gil/references/links.md diff --git a/04_cpython_internals_advanced/13_per_interpreter_gil/tests/test_basic.py b/modules/04_cpython_internals_advanced/13_per_interpreter_gil/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/13_per_interpreter_gil/tests/test_basic.py rename to modules/04_cpython_internals_advanced/13_per_interpreter_gil/tests/test_basic.py diff --git a/04_cpython_internals_advanced/14_memory_isolation/README.md b/modules/04_cpython_internals_advanced/14_memory_isolation/README.md similarity index 100% rename from 04_cpython_internals_advanced/14_memory_isolation/README.md rename to modules/04_cpython_internals_advanced/14_memory_isolation/README.md diff --git a/04_cpython_internals_advanced/14_memory_isolation/examples/example_basic.py b/modules/04_cpython_internals_advanced/14_memory_isolation/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/14_memory_isolation/examples/example_basic.py rename to modules/04_cpython_internals_advanced/14_memory_isolation/examples/example_basic.py diff --git a/04_cpython_internals_advanced/14_memory_isolation/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/14_memory_isolation/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/14_memory_isolation/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/14_memory_isolation/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/14_memory_isolation/references/links.md b/modules/04_cpython_internals_advanced/14_memory_isolation/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/14_memory_isolation/references/links.md rename to modules/04_cpython_internals_advanced/14_memory_isolation/references/links.md diff --git a/04_cpython_internals_advanced/14_memory_isolation/tests/test_basic.py b/modules/04_cpython_internals_advanced/14_memory_isolation/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/14_memory_isolation/tests/test_basic.py rename to modules/04_cpython_internals_advanced/14_memory_isolation/tests/test_basic.py diff --git a/04_cpython_internals_advanced/15_communication_channels/README.md b/modules/04_cpython_internals_advanced/15_communication_channels/README.md similarity index 100% rename from 04_cpython_internals_advanced/15_communication_channels/README.md rename to modules/04_cpython_internals_advanced/15_communication_channels/README.md diff --git a/04_cpython_internals_advanced/15_communication_channels/examples/example_basic.py b/modules/04_cpython_internals_advanced/15_communication_channels/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/15_communication_channels/examples/example_basic.py rename to modules/04_cpython_internals_advanced/15_communication_channels/examples/example_basic.py diff --git a/04_cpython_internals_advanced/15_communication_channels/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/15_communication_channels/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/15_communication_channels/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/15_communication_channels/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/15_communication_channels/references/links.md b/modules/04_cpython_internals_advanced/15_communication_channels/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/15_communication_channels/references/links.md rename to modules/04_cpython_internals_advanced/15_communication_channels/references/links.md diff --git a/04_cpython_internals_advanced/15_communication_channels/tests/test_basic.py b/modules/04_cpython_internals_advanced/15_communication_channels/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/15_communication_channels/tests/test_basic.py rename to modules/04_cpython_internals_advanced/15_communication_channels/tests/test_basic.py diff --git a/04_cpython_internals_advanced/16_atomic_operations/README.md b/modules/04_cpython_internals_advanced/16_atomic_operations/README.md similarity index 100% rename from 04_cpython_internals_advanced/16_atomic_operations/README.md rename to modules/04_cpython_internals_advanced/16_atomic_operations/README.md diff --git a/04_cpython_internals_advanced/16_atomic_operations/examples/example_basic.py b/modules/04_cpython_internals_advanced/16_atomic_operations/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/16_atomic_operations/examples/example_basic.py rename to modules/04_cpython_internals_advanced/16_atomic_operations/examples/example_basic.py diff --git a/04_cpython_internals_advanced/16_atomic_operations/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/16_atomic_operations/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/16_atomic_operations/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/16_atomic_operations/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/16_atomic_operations/references/links.md b/modules/04_cpython_internals_advanced/16_atomic_operations/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/16_atomic_operations/references/links.md rename to modules/04_cpython_internals_advanced/16_atomic_operations/references/links.md diff --git a/04_cpython_internals_advanced/16_atomic_operations/tests/test_basic.py b/modules/04_cpython_internals_advanced/16_atomic_operations/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/16_atomic_operations/tests/test_basic.py rename to modules/04_cpython_internals_advanced/16_atomic_operations/tests/test_basic.py diff --git a/04_cpython_internals_advanced/17_data_races/README.md b/modules/04_cpython_internals_advanced/17_data_races/README.md similarity index 100% rename from 04_cpython_internals_advanced/17_data_races/README.md rename to modules/04_cpython_internals_advanced/17_data_races/README.md diff --git a/04_cpython_internals_advanced/17_data_races/examples/example_basic.py b/modules/04_cpython_internals_advanced/17_data_races/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/17_data_races/examples/example_basic.py rename to modules/04_cpython_internals_advanced/17_data_races/examples/example_basic.py diff --git a/04_cpython_internals_advanced/17_data_races/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/17_data_races/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/17_data_races/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/17_data_races/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/17_data_races/references/links.md b/modules/04_cpython_internals_advanced/17_data_races/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/17_data_races/references/links.md rename to modules/04_cpython_internals_advanced/17_data_races/references/links.md diff --git a/04_cpython_internals_advanced/17_data_races/tests/test_basic.py b/modules/04_cpython_internals_advanced/17_data_races/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/17_data_races/tests/test_basic.py rename to modules/04_cpython_internals_advanced/17_data_races/tests/test_basic.py diff --git a/04_cpython_internals_advanced/18_locks_synchronization/README.md b/modules/04_cpython_internals_advanced/18_locks_synchronization/README.md similarity index 100% rename from 04_cpython_internals_advanced/18_locks_synchronization/README.md rename to modules/04_cpython_internals_advanced/18_locks_synchronization/README.md diff --git a/04_cpython_internals_advanced/18_locks_synchronization/examples/example_basic.py b/modules/04_cpython_internals_advanced/18_locks_synchronization/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/18_locks_synchronization/examples/example_basic.py rename to modules/04_cpython_internals_advanced/18_locks_synchronization/examples/example_basic.py diff --git a/04_cpython_internals_advanced/18_locks_synchronization/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/18_locks_synchronization/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/18_locks_synchronization/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/18_locks_synchronization/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/18_locks_synchronization/references/links.md b/modules/04_cpython_internals_advanced/18_locks_synchronization/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/18_locks_synchronization/references/links.md rename to modules/04_cpython_internals_advanced/18_locks_synchronization/references/links.md diff --git a/04_cpython_internals_advanced/18_locks_synchronization/tests/test_basic.py b/modules/04_cpython_internals_advanced/18_locks_synchronization/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/18_locks_synchronization/tests/test_basic.py rename to modules/04_cpython_internals_advanced/18_locks_synchronization/tests/test_basic.py diff --git a/04_cpython_internals_advanced/19_threading_local/README.md b/modules/04_cpython_internals_advanced/19_threading_local/README.md similarity index 100% rename from 04_cpython_internals_advanced/19_threading_local/README.md rename to modules/04_cpython_internals_advanced/19_threading_local/README.md diff --git a/04_cpython_internals_advanced/19_threading_local/examples/example_basic.py b/modules/04_cpython_internals_advanced/19_threading_local/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/19_threading_local/examples/example_basic.py rename to modules/04_cpython_internals_advanced/19_threading_local/examples/example_basic.py diff --git a/04_cpython_internals_advanced/19_threading_local/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/19_threading_local/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/19_threading_local/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/19_threading_local/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/19_threading_local/references/links.md b/modules/04_cpython_internals_advanced/19_threading_local/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/19_threading_local/references/links.md rename to modules/04_cpython_internals_advanced/19_threading_local/references/links.md diff --git a/04_cpython_internals_advanced/19_threading_local/tests/test_basic.py b/modules/04_cpython_internals_advanced/19_threading_local/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/19_threading_local/tests/test_basic.py rename to modules/04_cpython_internals_advanced/19_threading_local/tests/test_basic.py diff --git a/04_cpython_internals_advanced/20_thread_safe_structures/README.md b/modules/04_cpython_internals_advanced/20_thread_safe_structures/README.md similarity index 100% rename from 04_cpython_internals_advanced/20_thread_safe_structures/README.md rename to modules/04_cpython_internals_advanced/20_thread_safe_structures/README.md diff --git a/04_cpython_internals_advanced/20_thread_safe_structures/examples/example_basic.py b/modules/04_cpython_internals_advanced/20_thread_safe_structures/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/20_thread_safe_structures/examples/example_basic.py rename to modules/04_cpython_internals_advanced/20_thread_safe_structures/examples/example_basic.py diff --git a/04_cpython_internals_advanced/20_thread_safe_structures/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/20_thread_safe_structures/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/20_thread_safe_structures/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/20_thread_safe_structures/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/20_thread_safe_structures/references/links.md b/modules/04_cpython_internals_advanced/20_thread_safe_structures/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/20_thread_safe_structures/references/links.md rename to modules/04_cpython_internals_advanced/20_thread_safe_structures/references/links.md diff --git a/04_cpython_internals_advanced/20_thread_safe_structures/tests/test_basic.py b/modules/04_cpython_internals_advanced/20_thread_safe_structures/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/20_thread_safe_structures/tests/test_basic.py rename to modules/04_cpython_internals_advanced/20_thread_safe_structures/tests/test_basic.py diff --git a/04_cpython_internals_advanced/21_pyobject_structure/README.md b/modules/04_cpython_internals_advanced/21_pyobject_structure/README.md similarity index 100% rename from 04_cpython_internals_advanced/21_pyobject_structure/README.md rename to modules/04_cpython_internals_advanced/21_pyobject_structure/README.md diff --git a/04_cpython_internals_advanced/21_pyobject_structure/examples/example_basic.py b/modules/04_cpython_internals_advanced/21_pyobject_structure/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/21_pyobject_structure/examples/example_basic.py rename to modules/04_cpython_internals_advanced/21_pyobject_structure/examples/example_basic.py diff --git a/04_cpython_internals_advanced/21_pyobject_structure/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/21_pyobject_structure/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/21_pyobject_structure/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/21_pyobject_structure/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/21_pyobject_structure/references/links.md b/modules/04_cpython_internals_advanced/21_pyobject_structure/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/21_pyobject_structure/references/links.md rename to modules/04_cpython_internals_advanced/21_pyobject_structure/references/links.md diff --git a/04_cpython_internals_advanced/21_pyobject_structure/tests/test_basic.py b/modules/04_cpython_internals_advanced/21_pyobject_structure/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/21_pyobject_structure/tests/test_basic.py rename to modules/04_cpython_internals_advanced/21_pyobject_structure/tests/test_basic.py diff --git a/04_cpython_internals_advanced/22_reference_counting/README.md b/modules/04_cpython_internals_advanced/22_reference_counting/README.md similarity index 100% rename from 04_cpython_internals_advanced/22_reference_counting/README.md rename to modules/04_cpython_internals_advanced/22_reference_counting/README.md diff --git a/04_cpython_internals_advanced/22_reference_counting/examples/example_basic.py b/modules/04_cpython_internals_advanced/22_reference_counting/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/22_reference_counting/examples/example_basic.py rename to modules/04_cpython_internals_advanced/22_reference_counting/examples/example_basic.py diff --git a/04_cpython_internals_advanced/22_reference_counting/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/22_reference_counting/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/22_reference_counting/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/22_reference_counting/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/22_reference_counting/references/links.md b/modules/04_cpython_internals_advanced/22_reference_counting/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/22_reference_counting/references/links.md rename to modules/04_cpython_internals_advanced/22_reference_counting/references/links.md diff --git a/04_cpython_internals_advanced/22_reference_counting/tests/test_basic.py b/modules/04_cpython_internals_advanced/22_reference_counting/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/22_reference_counting/tests/test_basic.py rename to modules/04_cpython_internals_advanced/22_reference_counting/tests/test_basic.py diff --git a/04_cpython_internals_advanced/23_immortal_objects/README.md b/modules/04_cpython_internals_advanced/23_immortal_objects/README.md similarity index 100% rename from 04_cpython_internals_advanced/23_immortal_objects/README.md rename to modules/04_cpython_internals_advanced/23_immortal_objects/README.md diff --git a/04_cpython_internals_advanced/23_immortal_objects/examples/example_basic.py b/modules/04_cpython_internals_advanced/23_immortal_objects/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/23_immortal_objects/examples/example_basic.py rename to modules/04_cpython_internals_advanced/23_immortal_objects/examples/example_basic.py diff --git a/04_cpython_internals_advanced/23_immortal_objects/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/23_immortal_objects/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/23_immortal_objects/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/23_immortal_objects/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/23_immortal_objects/references/links.md b/modules/04_cpython_internals_advanced/23_immortal_objects/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/23_immortal_objects/references/links.md rename to modules/04_cpython_internals_advanced/23_immortal_objects/references/links.md diff --git a/04_cpython_internals_advanced/23_immortal_objects/tests/test_basic.py b/modules/04_cpython_internals_advanced/23_immortal_objects/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/23_immortal_objects/tests/test_basic.py rename to modules/04_cpython_internals_advanced/23_immortal_objects/tests/test_basic.py diff --git a/04_cpython_internals_advanced/24_caching_interning/README.md b/modules/04_cpython_internals_advanced/24_caching_interning/README.md similarity index 100% rename from 04_cpython_internals_advanced/24_caching_interning/README.md rename to modules/04_cpython_internals_advanced/24_caching_interning/README.md diff --git a/04_cpython_internals_advanced/24_caching_interning/examples/example_basic.py b/modules/04_cpython_internals_advanced/24_caching_interning/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/24_caching_interning/examples/example_basic.py rename to modules/04_cpython_internals_advanced/24_caching_interning/examples/example_basic.py diff --git a/04_cpython_internals_advanced/24_caching_interning/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/24_caching_interning/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/24_caching_interning/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/24_caching_interning/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/24_caching_interning/references/links.md b/modules/04_cpython_internals_advanced/24_caching_interning/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/24_caching_interning/references/links.md rename to modules/04_cpython_internals_advanced/24_caching_interning/references/links.md diff --git a/04_cpython_internals_advanced/24_caching_interning/tests/test_basic.py b/modules/04_cpython_internals_advanced/24_caching_interning/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/24_caching_interning/tests/test_basic.py rename to modules/04_cpython_internals_advanced/24_caching_interning/tests/test_basic.py diff --git a/04_cpython_internals_advanced/25_memory_layout/README.md b/modules/04_cpython_internals_advanced/25_memory_layout/README.md similarity index 100% rename from 04_cpython_internals_advanced/25_memory_layout/README.md rename to modules/04_cpython_internals_advanced/25_memory_layout/README.md diff --git a/04_cpython_internals_advanced/25_memory_layout/examples/example_basic.py b/modules/04_cpython_internals_advanced/25_memory_layout/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/25_memory_layout/examples/example_basic.py rename to modules/04_cpython_internals_advanced/25_memory_layout/examples/example_basic.py diff --git a/04_cpython_internals_advanced/25_memory_layout/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/25_memory_layout/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/25_memory_layout/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/25_memory_layout/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/25_memory_layout/references/links.md b/modules/04_cpython_internals_advanced/25_memory_layout/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/25_memory_layout/references/links.md rename to modules/04_cpython_internals_advanced/25_memory_layout/references/links.md diff --git a/04_cpython_internals_advanced/25_memory_layout/tests/test_basic.py b/modules/04_cpython_internals_advanced/25_memory_layout/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/25_memory_layout/tests/test_basic.py rename to modules/04_cpython_internals_advanced/25_memory_layout/tests/test_basic.py diff --git a/04_cpython_internals_advanced/26_migration_strategies/README.md b/modules/04_cpython_internals_advanced/26_migration_strategies/README.md similarity index 100% rename from 04_cpython_internals_advanced/26_migration_strategies/README.md rename to modules/04_cpython_internals_advanced/26_migration_strategies/README.md diff --git a/04_cpython_internals_advanced/26_migration_strategies/examples/example_basic.py b/modules/04_cpython_internals_advanced/26_migration_strategies/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/26_migration_strategies/examples/example_basic.py rename to modules/04_cpython_internals_advanced/26_migration_strategies/examples/example_basic.py diff --git a/04_cpython_internals_advanced/26_migration_strategies/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/26_migration_strategies/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/26_migration_strategies/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/26_migration_strategies/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/26_migration_strategies/references/links.md b/modules/04_cpython_internals_advanced/26_migration_strategies/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/26_migration_strategies/references/links.md rename to modules/04_cpython_internals_advanced/26_migration_strategies/references/links.md diff --git a/04_cpython_internals_advanced/26_migration_strategies/tests/test_basic.py b/modules/04_cpython_internals_advanced/26_migration_strategies/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/26_migration_strategies/tests/test_basic.py rename to modules/04_cpython_internals_advanced/26_migration_strategies/tests/test_basic.py diff --git a/04_cpython_internals_advanced/27_testing_thread_safety/README.md b/modules/04_cpython_internals_advanced/27_testing_thread_safety/README.md similarity index 100% rename from 04_cpython_internals_advanced/27_testing_thread_safety/README.md rename to modules/04_cpython_internals_advanced/27_testing_thread_safety/README.md diff --git a/04_cpython_internals_advanced/27_testing_thread_safety/examples/example_basic.py b/modules/04_cpython_internals_advanced/27_testing_thread_safety/examples/example_basic.py similarity index 100% rename from 04_cpython_internals_advanced/27_testing_thread_safety/examples/example_basic.py rename to modules/04_cpython_internals_advanced/27_testing_thread_safety/examples/example_basic.py diff --git a/04_cpython_internals_advanced/27_testing_thread_safety/exercise/exercise_01.py b/modules/04_cpython_internals_advanced/27_testing_thread_safety/exercise/exercise_01.py similarity index 100% rename from 04_cpython_internals_advanced/27_testing_thread_safety/exercise/exercise_01.py rename to modules/04_cpython_internals_advanced/27_testing_thread_safety/exercise/exercise_01.py diff --git a/04_cpython_internals_advanced/27_testing_thread_safety/references/links.md b/modules/04_cpython_internals_advanced/27_testing_thread_safety/references/links.md similarity index 100% rename from 04_cpython_internals_advanced/27_testing_thread_safety/references/links.md rename to modules/04_cpython_internals_advanced/27_testing_thread_safety/references/links.md diff --git a/04_cpython_internals_advanced/27_testing_thread_safety/tests/test_basic.py b/modules/04_cpython_internals_advanced/27_testing_thread_safety/tests/test_basic.py similarity index 100% rename from 04_cpython_internals_advanced/27_testing_thread_safety/tests/test_basic.py rename to modules/04_cpython_internals_advanced/27_testing_thread_safety/tests/test_basic.py diff --git a/04_cpython_internals_advanced/README.md b/modules/04_cpython_internals_advanced/README.md similarity index 100% rename from 04_cpython_internals_advanced/README.md rename to modules/04_cpython_internals_advanced/README.md diff --git a/04_cpython_internals_advanced/create_templates.py b/modules/04_cpython_internals_advanced/create_templates.py similarity index 100% rename from 04_cpython_internals_advanced/create_templates.py rename to modules/04_cpython_internals_advanced/create_templates.py diff --git a/05_modern_concurrency/README.md b/modules/05_modern_concurrency/README.md similarity index 100% rename from 05_modern_concurrency/README.md rename to modules/05_modern_concurrency/README.md diff --git a/05_modern_concurrency/actor_model/README.md b/modules/05_modern_concurrency/actor_model/README.md similarity index 100% rename from 05_modern_concurrency/actor_model/README.md rename to modules/05_modern_concurrency/actor_model/README.md diff --git a/05_modern_concurrency/actor_model/examples/example_basic.py b/modules/05_modern_concurrency/actor_model/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/actor_model/examples/example_basic.py rename to modules/05_modern_concurrency/actor_model/examples/example_basic.py diff --git a/05_modern_concurrency/actor_model/exercise/exercise_01.py b/modules/05_modern_concurrency/actor_model/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/actor_model/exercise/exercise_01.py rename to modules/05_modern_concurrency/actor_model/exercise/exercise_01.py diff --git a/05_modern_concurrency/actor_model/references/links.md b/modules/05_modern_concurrency/actor_model/references/links.md similarity index 100% rename from 05_modern_concurrency/actor_model/references/links.md rename to modules/05_modern_concurrency/actor_model/references/links.md diff --git a/05_modern_concurrency/actor_model/tests/test_basic.py b/modules/05_modern_concurrency/actor_model/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/actor_model/tests/test_basic.py rename to modules/05_modern_concurrency/actor_model/tests/test_basic.py diff --git a/05_modern_concurrency/aiohttp_httpx/README.md b/modules/05_modern_concurrency/aiohttp_httpx/README.md similarity index 100% rename from 05_modern_concurrency/aiohttp_httpx/README.md rename to modules/05_modern_concurrency/aiohttp_httpx/README.md diff --git a/05_modern_concurrency/aiohttp_httpx/examples/example_basic.py b/modules/05_modern_concurrency/aiohttp_httpx/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/aiohttp_httpx/examples/example_basic.py rename to modules/05_modern_concurrency/aiohttp_httpx/examples/example_basic.py diff --git a/05_modern_concurrency/aiohttp_httpx/exercise/exercise_01.py b/modules/05_modern_concurrency/aiohttp_httpx/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/aiohttp_httpx/exercise/exercise_01.py rename to modules/05_modern_concurrency/aiohttp_httpx/exercise/exercise_01.py diff --git a/05_modern_concurrency/aiohttp_httpx/references/links.md b/modules/05_modern_concurrency/aiohttp_httpx/references/links.md similarity index 100% rename from 05_modern_concurrency/aiohttp_httpx/references/links.md rename to modules/05_modern_concurrency/aiohttp_httpx/references/links.md diff --git a/05_modern_concurrency/aiohttp_httpx/tests/test_basic.py b/modules/05_modern_concurrency/aiohttp_httpx/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/aiohttp_httpx/tests/test_basic.py rename to modules/05_modern_concurrency/aiohttp_httpx/tests/test_basic.py diff --git a/05_modern_concurrency/asyncio_debugging/README.md b/modules/05_modern_concurrency/asyncio_debugging/README.md similarity index 100% rename from 05_modern_concurrency/asyncio_debugging/README.md rename to modules/05_modern_concurrency/asyncio_debugging/README.md diff --git a/05_modern_concurrency/asyncio_debugging/examples/example_basic.py b/modules/05_modern_concurrency/asyncio_debugging/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_debugging/examples/example_basic.py rename to modules/05_modern_concurrency/asyncio_debugging/examples/example_basic.py diff --git a/05_modern_concurrency/asyncio_debugging/exercise/exercise_01.py b/modules/05_modern_concurrency/asyncio_debugging/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/asyncio_debugging/exercise/exercise_01.py rename to modules/05_modern_concurrency/asyncio_debugging/exercise/exercise_01.py diff --git a/05_modern_concurrency/asyncio_debugging/references/links.md b/modules/05_modern_concurrency/asyncio_debugging/references/links.md similarity index 100% rename from 05_modern_concurrency/asyncio_debugging/references/links.md rename to modules/05_modern_concurrency/asyncio_debugging/references/links.md diff --git a/05_modern_concurrency/asyncio_debugging/tests/test_basic.py b/modules/05_modern_concurrency/asyncio_debugging/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_debugging/tests/test_basic.py rename to modules/05_modern_concurrency/asyncio_debugging/tests/test_basic.py diff --git a/05_modern_concurrency/asyncio_fundamentals/README.md b/modules/05_modern_concurrency/asyncio_fundamentals/README.md similarity index 100% rename from 05_modern_concurrency/asyncio_fundamentals/README.md rename to modules/05_modern_concurrency/asyncio_fundamentals/README.md diff --git a/05_modern_concurrency/asyncio_fundamentals/examples/example_basic.py b/modules/05_modern_concurrency/asyncio_fundamentals/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_fundamentals/examples/example_basic.py rename to modules/05_modern_concurrency/asyncio_fundamentals/examples/example_basic.py diff --git a/05_modern_concurrency/asyncio_fundamentals/exercise/exercise_01.py b/modules/05_modern_concurrency/asyncio_fundamentals/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/asyncio_fundamentals/exercise/exercise_01.py rename to modules/05_modern_concurrency/asyncio_fundamentals/exercise/exercise_01.py diff --git a/05_modern_concurrency/asyncio_fundamentals/references/links.md b/modules/05_modern_concurrency/asyncio_fundamentals/references/links.md similarity index 100% rename from 05_modern_concurrency/asyncio_fundamentals/references/links.md rename to modules/05_modern_concurrency/asyncio_fundamentals/references/links.md diff --git a/05_modern_concurrency/asyncio_fundamentals/tests/test_basic.py b/modules/05_modern_concurrency/asyncio_fundamentals/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_fundamentals/tests/test_basic.py rename to modules/05_modern_concurrency/asyncio_fundamentals/tests/test_basic.py diff --git a/05_modern_concurrency/asyncio_patterns/README.md b/modules/05_modern_concurrency/asyncio_patterns/README.md similarity index 100% rename from 05_modern_concurrency/asyncio_patterns/README.md rename to modules/05_modern_concurrency/asyncio_patterns/README.md diff --git a/05_modern_concurrency/asyncio_patterns/examples/example_basic.py b/modules/05_modern_concurrency/asyncio_patterns/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_patterns/examples/example_basic.py rename to modules/05_modern_concurrency/asyncio_patterns/examples/example_basic.py diff --git a/05_modern_concurrency/asyncio_patterns/exercise/exercise_01.py b/modules/05_modern_concurrency/asyncio_patterns/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/asyncio_patterns/exercise/exercise_01.py rename to modules/05_modern_concurrency/asyncio_patterns/exercise/exercise_01.py diff --git a/05_modern_concurrency/asyncio_patterns/references/links.md b/modules/05_modern_concurrency/asyncio_patterns/references/links.md similarity index 100% rename from 05_modern_concurrency/asyncio_patterns/references/links.md rename to modules/05_modern_concurrency/asyncio_patterns/references/links.md diff --git a/05_modern_concurrency/asyncio_patterns/tests/test_basic.py b/modules/05_modern_concurrency/asyncio_patterns/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_patterns/tests/test_basic.py rename to modules/05_modern_concurrency/asyncio_patterns/tests/test_basic.py diff --git a/05_modern_concurrency/asyncio_streams/README.md b/modules/05_modern_concurrency/asyncio_streams/README.md similarity index 100% rename from 05_modern_concurrency/asyncio_streams/README.md rename to modules/05_modern_concurrency/asyncio_streams/README.md diff --git a/05_modern_concurrency/asyncio_streams/examples/example_basic.py b/modules/05_modern_concurrency/asyncio_streams/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_streams/examples/example_basic.py rename to modules/05_modern_concurrency/asyncio_streams/examples/example_basic.py diff --git a/05_modern_concurrency/asyncio_streams/exercise/exercise_01.py b/modules/05_modern_concurrency/asyncio_streams/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/asyncio_streams/exercise/exercise_01.py rename to modules/05_modern_concurrency/asyncio_streams/exercise/exercise_01.py diff --git a/05_modern_concurrency/asyncio_streams/references/links.md b/modules/05_modern_concurrency/asyncio_streams/references/links.md similarity index 100% rename from 05_modern_concurrency/asyncio_streams/references/links.md rename to modules/05_modern_concurrency/asyncio_streams/references/links.md diff --git a/05_modern_concurrency/asyncio_streams/tests/test_basic.py b/modules/05_modern_concurrency/asyncio_streams/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/asyncio_streams/tests/test_basic.py rename to modules/05_modern_concurrency/asyncio_streams/tests/test_basic.py diff --git a/05_modern_concurrency/barriers_events/README.md b/modules/05_modern_concurrency/barriers_events/README.md similarity index 100% rename from 05_modern_concurrency/barriers_events/README.md rename to modules/05_modern_concurrency/barriers_events/README.md diff --git a/05_modern_concurrency/barriers_events/examples/example_basic.py b/modules/05_modern_concurrency/barriers_events/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/barriers_events/examples/example_basic.py rename to modules/05_modern_concurrency/barriers_events/examples/example_basic.py diff --git a/05_modern_concurrency/barriers_events/exercise/exercise_01.py b/modules/05_modern_concurrency/barriers_events/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/barriers_events/exercise/exercise_01.py rename to modules/05_modern_concurrency/barriers_events/exercise/exercise_01.py diff --git a/05_modern_concurrency/barriers_events/references/links.md b/modules/05_modern_concurrency/barriers_events/references/links.md similarity index 100% rename from 05_modern_concurrency/barriers_events/references/links.md rename to modules/05_modern_concurrency/barriers_events/references/links.md diff --git a/05_modern_concurrency/barriers_events/tests/test_basic.py b/modules/05_modern_concurrency/barriers_events/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/barriers_events/tests/test_basic.py rename to modules/05_modern_concurrency/barriers_events/tests/test_basic.py diff --git a/05_modern_concurrency/basic_multiprocessing/README.md b/modules/05_modern_concurrency/basic_multiprocessing/README.md similarity index 100% rename from 05_modern_concurrency/basic_multiprocessing/README.md rename to modules/05_modern_concurrency/basic_multiprocessing/README.md diff --git a/05_modern_concurrency/basic_multiprocessing/examples/example_basic.py b/modules/05_modern_concurrency/basic_multiprocessing/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/basic_multiprocessing/examples/example_basic.py rename to modules/05_modern_concurrency/basic_multiprocessing/examples/example_basic.py diff --git a/05_modern_concurrency/basic_multiprocessing/exercise/exercise_01.py b/modules/05_modern_concurrency/basic_multiprocessing/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/basic_multiprocessing/exercise/exercise_01.py rename to modules/05_modern_concurrency/basic_multiprocessing/exercise/exercise_01.py diff --git a/05_modern_concurrency/basic_multiprocessing/references/links.md b/modules/05_modern_concurrency/basic_multiprocessing/references/links.md similarity index 100% rename from 05_modern_concurrency/basic_multiprocessing/references/links.md rename to modules/05_modern_concurrency/basic_multiprocessing/references/links.md diff --git a/05_modern_concurrency/basic_multiprocessing/tests/test_basic.py b/modules/05_modern_concurrency/basic_multiprocessing/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/basic_multiprocessing/tests/test_basic.py rename to modules/05_modern_concurrency/basic_multiprocessing/tests/test_basic.py diff --git a/05_modern_concurrency/basic_threading/README.md b/modules/05_modern_concurrency/basic_threading/README.md similarity index 100% rename from 05_modern_concurrency/basic_threading/README.md rename to modules/05_modern_concurrency/basic_threading/README.md diff --git a/05_modern_concurrency/basic_threading/examples/example_basic.py b/modules/05_modern_concurrency/basic_threading/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/basic_threading/examples/example_basic.py rename to modules/05_modern_concurrency/basic_threading/examples/example_basic.py diff --git a/05_modern_concurrency/basic_threading/exercise/exercise_01.py b/modules/05_modern_concurrency/basic_threading/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/basic_threading/exercise/exercise_01.py rename to modules/05_modern_concurrency/basic_threading/exercise/exercise_01.py diff --git a/05_modern_concurrency/basic_threading/references/links.md b/modules/05_modern_concurrency/basic_threading/references/links.md similarity index 100% rename from 05_modern_concurrency/basic_threading/references/links.md rename to modules/05_modern_concurrency/basic_threading/references/links.md diff --git a/05_modern_concurrency/basic_threading/tests/test_basic.py b/modules/05_modern_concurrency/basic_threading/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/basic_threading/tests/test_basic.py rename to modules/05_modern_concurrency/basic_threading/tests/test_basic.py diff --git a/05_modern_concurrency/concurrency_models/README.md b/modules/05_modern_concurrency/concurrency_models/README.md similarity index 100% rename from 05_modern_concurrency/concurrency_models/README.md rename to modules/05_modern_concurrency/concurrency_models/README.md diff --git a/05_modern_concurrency/concurrency_models/examples/example_basic.py b/modules/05_modern_concurrency/concurrency_models/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/concurrency_models/examples/example_basic.py rename to modules/05_modern_concurrency/concurrency_models/examples/example_basic.py diff --git a/05_modern_concurrency/concurrency_models/exercise/exercise_01.py b/modules/05_modern_concurrency/concurrency_models/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/concurrency_models/exercise/exercise_01.py rename to modules/05_modern_concurrency/concurrency_models/exercise/exercise_01.py diff --git a/05_modern_concurrency/concurrency_models/references/links.md b/modules/05_modern_concurrency/concurrency_models/references/links.md similarity index 100% rename from 05_modern_concurrency/concurrency_models/references/links.md rename to modules/05_modern_concurrency/concurrency_models/references/links.md diff --git a/05_modern_concurrency/concurrency_models/tests/test_basic.py b/modules/05_modern_concurrency/concurrency_models/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/concurrency_models/tests/test_basic.py rename to modules/05_modern_concurrency/concurrency_models/tests/test_basic.py diff --git a/05_modern_concurrency/coroutines_async_await/README.md b/modules/05_modern_concurrency/coroutines_async_await/README.md similarity index 100% rename from 05_modern_concurrency/coroutines_async_await/README.md rename to modules/05_modern_concurrency/coroutines_async_await/README.md diff --git a/05_modern_concurrency/coroutines_async_await/examples/example_basic.py b/modules/05_modern_concurrency/coroutines_async_await/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/coroutines_async_await/examples/example_basic.py rename to modules/05_modern_concurrency/coroutines_async_await/examples/example_basic.py diff --git a/05_modern_concurrency/coroutines_async_await/exercise/exercise_01.py b/modules/05_modern_concurrency/coroutines_async_await/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/coroutines_async_await/exercise/exercise_01.py rename to modules/05_modern_concurrency/coroutines_async_await/exercise/exercise_01.py diff --git a/05_modern_concurrency/coroutines_async_await/references/links.md b/modules/05_modern_concurrency/coroutines_async_await/references/links.md similarity index 100% rename from 05_modern_concurrency/coroutines_async_await/references/links.md rename to modules/05_modern_concurrency/coroutines_async_await/references/links.md diff --git a/05_modern_concurrency/coroutines_async_await/tests/test_basic.py b/modules/05_modern_concurrency/coroutines_async_await/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/coroutines_async_await/tests/test_basic.py rename to modules/05_modern_concurrency/coroutines_async_await/tests/test_basic.py diff --git a/05_modern_concurrency/event_loop_internals/README.md b/modules/05_modern_concurrency/event_loop_internals/README.md similarity index 100% rename from 05_modern_concurrency/event_loop_internals/README.md rename to modules/05_modern_concurrency/event_loop_internals/README.md diff --git a/05_modern_concurrency/event_loop_internals/examples/example_basic.py b/modules/05_modern_concurrency/event_loop_internals/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/event_loop_internals/examples/example_basic.py rename to modules/05_modern_concurrency/event_loop_internals/examples/example_basic.py diff --git a/05_modern_concurrency/event_loop_internals/exercise/exercise_01.py b/modules/05_modern_concurrency/event_loop_internals/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/event_loop_internals/exercise/exercise_01.py rename to modules/05_modern_concurrency/event_loop_internals/exercise/exercise_01.py diff --git a/05_modern_concurrency/event_loop_internals/references/links.md b/modules/05_modern_concurrency/event_loop_internals/references/links.md similarity index 100% rename from 05_modern_concurrency/event_loop_internals/references/links.md rename to modules/05_modern_concurrency/event_loop_internals/references/links.md diff --git a/05_modern_concurrency/event_loop_internals/tests/test_basic.py b/modules/05_modern_concurrency/event_loop_internals/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/event_loop_internals/tests/test_basic.py rename to modules/05_modern_concurrency/event_loop_internals/tests/test_basic.py diff --git a/05_modern_concurrency/locks_semaphores/README.md b/modules/05_modern_concurrency/locks_semaphores/README.md similarity index 100% rename from 05_modern_concurrency/locks_semaphores/README.md rename to modules/05_modern_concurrency/locks_semaphores/README.md diff --git a/05_modern_concurrency/locks_semaphores/examples/example_basic.py b/modules/05_modern_concurrency/locks_semaphores/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/locks_semaphores/examples/example_basic.py rename to modules/05_modern_concurrency/locks_semaphores/examples/example_basic.py diff --git a/05_modern_concurrency/locks_semaphores/exercise/exercise_01.py b/modules/05_modern_concurrency/locks_semaphores/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/locks_semaphores/exercise/exercise_01.py rename to modules/05_modern_concurrency/locks_semaphores/exercise/exercise_01.py diff --git a/05_modern_concurrency/locks_semaphores/references/links.md b/modules/05_modern_concurrency/locks_semaphores/references/links.md similarity index 100% rename from 05_modern_concurrency/locks_semaphores/references/links.md rename to modules/05_modern_concurrency/locks_semaphores/references/links.md diff --git a/05_modern_concurrency/locks_semaphores/tests/test_basic.py b/modules/05_modern_concurrency/locks_semaphores/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/locks_semaphores/tests/test_basic.py rename to modules/05_modern_concurrency/locks_semaphores/tests/test_basic.py diff --git a/05_modern_concurrency/map_reduce/README.md b/modules/05_modern_concurrency/map_reduce/README.md similarity index 100% rename from 05_modern_concurrency/map_reduce/README.md rename to modules/05_modern_concurrency/map_reduce/README.md diff --git a/05_modern_concurrency/map_reduce/examples/example_basic.py b/modules/05_modern_concurrency/map_reduce/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/map_reduce/examples/example_basic.py rename to modules/05_modern_concurrency/map_reduce/examples/example_basic.py diff --git a/05_modern_concurrency/map_reduce/exercise/exercise_01.py b/modules/05_modern_concurrency/map_reduce/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/map_reduce/exercise/exercise_01.py rename to modules/05_modern_concurrency/map_reduce/exercise/exercise_01.py diff --git a/05_modern_concurrency/map_reduce/references/links.md b/modules/05_modern_concurrency/map_reduce/references/links.md similarity index 100% rename from 05_modern_concurrency/map_reduce/references/links.md rename to modules/05_modern_concurrency/map_reduce/references/links.md diff --git a/05_modern_concurrency/map_reduce/tests/test_basic.py b/modules/05_modern_concurrency/map_reduce/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/map_reduce/tests/test_basic.py rename to modules/05_modern_concurrency/map_reduce/tests/test_basic.py diff --git a/05_modern_concurrency/parallel_pipeline/README.md b/modules/05_modern_concurrency/parallel_pipeline/README.md similarity index 100% rename from 05_modern_concurrency/parallel_pipeline/README.md rename to modules/05_modern_concurrency/parallel_pipeline/README.md diff --git a/05_modern_concurrency/parallel_pipeline/examples/example_basic.py b/modules/05_modern_concurrency/parallel_pipeline/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/parallel_pipeline/examples/example_basic.py rename to modules/05_modern_concurrency/parallel_pipeline/examples/example_basic.py diff --git a/05_modern_concurrency/parallel_pipeline/exercise/exercise_01.py b/modules/05_modern_concurrency/parallel_pipeline/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/parallel_pipeline/exercise/exercise_01.py rename to modules/05_modern_concurrency/parallel_pipeline/exercise/exercise_01.py diff --git a/05_modern_concurrency/parallel_pipeline/references/links.md b/modules/05_modern_concurrency/parallel_pipeline/references/links.md similarity index 100% rename from 05_modern_concurrency/parallel_pipeline/references/links.md rename to modules/05_modern_concurrency/parallel_pipeline/references/links.md diff --git a/05_modern_concurrency/parallel_pipeline/tests/test_basic.py b/modules/05_modern_concurrency/parallel_pipeline/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/parallel_pipeline/tests/test_basic.py rename to modules/05_modern_concurrency/parallel_pipeline/tests/test_basic.py diff --git a/05_modern_concurrency/process_pools/README.md b/modules/05_modern_concurrency/process_pools/README.md similarity index 100% rename from 05_modern_concurrency/process_pools/README.md rename to modules/05_modern_concurrency/process_pools/README.md diff --git a/05_modern_concurrency/process_pools/examples/example_basic.py b/modules/05_modern_concurrency/process_pools/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/process_pools/examples/example_basic.py rename to modules/05_modern_concurrency/process_pools/examples/example_basic.py diff --git a/05_modern_concurrency/process_pools/exercise/exercise_01.py b/modules/05_modern_concurrency/process_pools/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/process_pools/exercise/exercise_01.py rename to modules/05_modern_concurrency/process_pools/exercise/exercise_01.py diff --git a/05_modern_concurrency/process_pools/references/links.md b/modules/05_modern_concurrency/process_pools/references/links.md similarity index 100% rename from 05_modern_concurrency/process_pools/references/links.md rename to modules/05_modern_concurrency/process_pools/references/links.md diff --git a/05_modern_concurrency/process_pools/tests/test_basic.py b/modules/05_modern_concurrency/process_pools/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/process_pools/tests/test_basic.py rename to modules/05_modern_concurrency/process_pools/tests/test_basic.py diff --git a/05_modern_concurrency/producer_consumer/README.md b/modules/05_modern_concurrency/producer_consumer/README.md similarity index 100% rename from 05_modern_concurrency/producer_consumer/README.md rename to modules/05_modern_concurrency/producer_consumer/README.md diff --git a/05_modern_concurrency/producer_consumer/examples/example_basic.py b/modules/05_modern_concurrency/producer_consumer/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/producer_consumer/examples/example_basic.py rename to modules/05_modern_concurrency/producer_consumer/examples/example_basic.py diff --git a/05_modern_concurrency/producer_consumer/exercise/exercise_01.py b/modules/05_modern_concurrency/producer_consumer/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/producer_consumer/exercise/exercise_01.py rename to modules/05_modern_concurrency/producer_consumer/exercise/exercise_01.py diff --git a/05_modern_concurrency/producer_consumer/references/links.md b/modules/05_modern_concurrency/producer_consumer/references/links.md similarity index 100% rename from 05_modern_concurrency/producer_consumer/references/links.md rename to modules/05_modern_concurrency/producer_consumer/references/links.md diff --git a/05_modern_concurrency/producer_consumer/tests/test_basic.py b/modules/05_modern_concurrency/producer_consumer/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/producer_consumer/tests/test_basic.py rename to modules/05_modern_concurrency/producer_consumer/tests/test_basic.py diff --git a/05_modern_concurrency/profiling_concurrent/README.md b/modules/05_modern_concurrency/profiling_concurrent/README.md similarity index 100% rename from 05_modern_concurrency/profiling_concurrent/README.md rename to modules/05_modern_concurrency/profiling_concurrent/README.md diff --git a/05_modern_concurrency/profiling_concurrent/examples/example_basic.py b/modules/05_modern_concurrency/profiling_concurrent/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/profiling_concurrent/examples/example_basic.py rename to modules/05_modern_concurrency/profiling_concurrent/examples/example_basic.py diff --git a/05_modern_concurrency/profiling_concurrent/exercise/exercise_01.py b/modules/05_modern_concurrency/profiling_concurrent/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/profiling_concurrent/exercise/exercise_01.py rename to modules/05_modern_concurrency/profiling_concurrent/exercise/exercise_01.py diff --git a/05_modern_concurrency/profiling_concurrent/references/links.md b/modules/05_modern_concurrency/profiling_concurrent/references/links.md similarity index 100% rename from 05_modern_concurrency/profiling_concurrent/references/links.md rename to modules/05_modern_concurrency/profiling_concurrent/references/links.md diff --git a/05_modern_concurrency/profiling_concurrent/tests/test_basic.py b/modules/05_modern_concurrency/profiling_concurrent/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/profiling_concurrent/tests/test_basic.py rename to modules/05_modern_concurrency/profiling_concurrent/tests/test_basic.py diff --git a/05_modern_concurrency/race_detection/README.md b/modules/05_modern_concurrency/race_detection/README.md similarity index 100% rename from 05_modern_concurrency/race_detection/README.md rename to modules/05_modern_concurrency/race_detection/README.md diff --git a/05_modern_concurrency/race_detection/examples/example_basic.py b/modules/05_modern_concurrency/race_detection/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/race_detection/examples/example_basic.py rename to modules/05_modern_concurrency/race_detection/examples/example_basic.py diff --git a/05_modern_concurrency/race_detection/exercise/exercise_01.py b/modules/05_modern_concurrency/race_detection/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/race_detection/exercise/exercise_01.py rename to modules/05_modern_concurrency/race_detection/exercise/exercise_01.py diff --git a/05_modern_concurrency/race_detection/references/links.md b/modules/05_modern_concurrency/race_detection/references/links.md similarity index 100% rename from 05_modern_concurrency/race_detection/references/links.md rename to modules/05_modern_concurrency/race_detection/references/links.md diff --git a/05_modern_concurrency/race_detection/tests/test_basic.py b/modules/05_modern_concurrency/race_detection/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/race_detection/tests/test_basic.py rename to modules/05_modern_concurrency/race_detection/tests/test_basic.py diff --git a/05_modern_concurrency/shared_memory/README.md b/modules/05_modern_concurrency/shared_memory/README.md similarity index 100% rename from 05_modern_concurrency/shared_memory/README.md rename to modules/05_modern_concurrency/shared_memory/README.md diff --git a/05_modern_concurrency/shared_memory/examples/example_basic.py b/modules/05_modern_concurrency/shared_memory/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/shared_memory/examples/example_basic.py rename to modules/05_modern_concurrency/shared_memory/examples/example_basic.py diff --git a/05_modern_concurrency/shared_memory/exercise/exercise_01.py b/modules/05_modern_concurrency/shared_memory/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/shared_memory/exercise/exercise_01.py rename to modules/05_modern_concurrency/shared_memory/exercise/exercise_01.py diff --git a/05_modern_concurrency/shared_memory/references/links.md b/modules/05_modern_concurrency/shared_memory/references/links.md similarity index 100% rename from 05_modern_concurrency/shared_memory/references/links.md rename to modules/05_modern_concurrency/shared_memory/references/links.md diff --git a/05_modern_concurrency/shared_memory/tests/test_basic.py b/modules/05_modern_concurrency/shared_memory/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/shared_memory/tests/test_basic.py rename to modules/05_modern_concurrency/shared_memory/tests/test_basic.py diff --git a/05_modern_concurrency/subinterpreters_communication/README.md b/modules/05_modern_concurrency/subinterpreters_communication/README.md similarity index 100% rename from 05_modern_concurrency/subinterpreters_communication/README.md rename to modules/05_modern_concurrency/subinterpreters_communication/README.md diff --git a/05_modern_concurrency/subinterpreters_communication/examples/example_basic.py b/modules/05_modern_concurrency/subinterpreters_communication/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_communication/examples/example_basic.py rename to modules/05_modern_concurrency/subinterpreters_communication/examples/example_basic.py diff --git a/05_modern_concurrency/subinterpreters_communication/exercise/exercise_01.py b/modules/05_modern_concurrency/subinterpreters_communication/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_communication/exercise/exercise_01.py rename to modules/05_modern_concurrency/subinterpreters_communication/exercise/exercise_01.py diff --git a/05_modern_concurrency/subinterpreters_communication/references/links.md b/modules/05_modern_concurrency/subinterpreters_communication/references/links.md similarity index 100% rename from 05_modern_concurrency/subinterpreters_communication/references/links.md rename to modules/05_modern_concurrency/subinterpreters_communication/references/links.md diff --git a/05_modern_concurrency/subinterpreters_communication/tests/test_basic.py b/modules/05_modern_concurrency/subinterpreters_communication/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_communication/tests/test_basic.py rename to modules/05_modern_concurrency/subinterpreters_communication/tests/test_basic.py diff --git a/05_modern_concurrency/subinterpreters_usage/README.md b/modules/05_modern_concurrency/subinterpreters_usage/README.md similarity index 100% rename from 05_modern_concurrency/subinterpreters_usage/README.md rename to modules/05_modern_concurrency/subinterpreters_usage/README.md diff --git a/05_modern_concurrency/subinterpreters_usage/examples/example_basic.py b/modules/05_modern_concurrency/subinterpreters_usage/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_usage/examples/example_basic.py rename to modules/05_modern_concurrency/subinterpreters_usage/examples/example_basic.py diff --git a/05_modern_concurrency/subinterpreters_usage/exercise/exercise_01.py b/modules/05_modern_concurrency/subinterpreters_usage/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_usage/exercise/exercise_01.py rename to modules/05_modern_concurrency/subinterpreters_usage/exercise/exercise_01.py diff --git a/05_modern_concurrency/subinterpreters_usage/references/links.md b/modules/05_modern_concurrency/subinterpreters_usage/references/links.md similarity index 100% rename from 05_modern_concurrency/subinterpreters_usage/references/links.md rename to modules/05_modern_concurrency/subinterpreters_usage/references/links.md diff --git a/05_modern_concurrency/subinterpreters_usage/tests/test_basic.py b/modules/05_modern_concurrency/subinterpreters_usage/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/subinterpreters_usage/tests/test_basic.py rename to modules/05_modern_concurrency/subinterpreters_usage/tests/test_basic.py diff --git a/05_modern_concurrency/taskgroups/README.md b/modules/05_modern_concurrency/taskgroups/README.md similarity index 100% rename from 05_modern_concurrency/taskgroups/README.md rename to modules/05_modern_concurrency/taskgroups/README.md diff --git a/05_modern_concurrency/taskgroups/examples/example_basic.py b/modules/05_modern_concurrency/taskgroups/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/taskgroups/examples/example_basic.py rename to modules/05_modern_concurrency/taskgroups/examples/example_basic.py diff --git a/05_modern_concurrency/taskgroups/exercise/exercise_01.py b/modules/05_modern_concurrency/taskgroups/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/taskgroups/exercise/exercise_01.py rename to modules/05_modern_concurrency/taskgroups/exercise/exercise_01.py diff --git a/05_modern_concurrency/taskgroups/references/links.md b/modules/05_modern_concurrency/taskgroups/references/links.md similarity index 100% rename from 05_modern_concurrency/taskgroups/references/links.md rename to modules/05_modern_concurrency/taskgroups/references/links.md diff --git a/05_modern_concurrency/taskgroups/tests/test_basic.py b/modules/05_modern_concurrency/taskgroups/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/taskgroups/tests/test_basic.py rename to modules/05_modern_concurrency/taskgroups/tests/test_basic.py diff --git a/05_modern_concurrency/thread_pools/README.md b/modules/05_modern_concurrency/thread_pools/README.md similarity index 100% rename from 05_modern_concurrency/thread_pools/README.md rename to modules/05_modern_concurrency/thread_pools/README.md diff --git a/05_modern_concurrency/thread_pools/examples/example_basic.py b/modules/05_modern_concurrency/thread_pools/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/thread_pools/examples/example_basic.py rename to modules/05_modern_concurrency/thread_pools/examples/example_basic.py diff --git a/05_modern_concurrency/thread_pools/exercise/exercise_01.py b/modules/05_modern_concurrency/thread_pools/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/thread_pools/exercise/exercise_01.py rename to modules/05_modern_concurrency/thread_pools/exercise/exercise_01.py diff --git a/05_modern_concurrency/thread_pools/references/links.md b/modules/05_modern_concurrency/thread_pools/references/links.md similarity index 100% rename from 05_modern_concurrency/thread_pools/references/links.md rename to modules/05_modern_concurrency/thread_pools/references/links.md diff --git a/05_modern_concurrency/thread_pools/tests/test_basic.py b/modules/05_modern_concurrency/thread_pools/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/thread_pools/tests/test_basic.py rename to modules/05_modern_concurrency/thread_pools/tests/test_basic.py diff --git a/05_modern_concurrency/threading_freethreading/README.md b/modules/05_modern_concurrency/threading_freethreading/README.md similarity index 100% rename from 05_modern_concurrency/threading_freethreading/README.md rename to modules/05_modern_concurrency/threading_freethreading/README.md diff --git a/05_modern_concurrency/threading_freethreading/examples/example_basic.py b/modules/05_modern_concurrency/threading_freethreading/examples/example_basic.py similarity index 100% rename from 05_modern_concurrency/threading_freethreading/examples/example_basic.py rename to modules/05_modern_concurrency/threading_freethreading/examples/example_basic.py diff --git a/05_modern_concurrency/threading_freethreading/exercise/exercise_01.py b/modules/05_modern_concurrency/threading_freethreading/exercise/exercise_01.py similarity index 100% rename from 05_modern_concurrency/threading_freethreading/exercise/exercise_01.py rename to modules/05_modern_concurrency/threading_freethreading/exercise/exercise_01.py diff --git a/05_modern_concurrency/threading_freethreading/references/links.md b/modules/05_modern_concurrency/threading_freethreading/references/links.md similarity index 100% rename from 05_modern_concurrency/threading_freethreading/references/links.md rename to modules/05_modern_concurrency/threading_freethreading/references/links.md diff --git a/05_modern_concurrency/threading_freethreading/tests/test_basic.py b/modules/05_modern_concurrency/threading_freethreading/tests/test_basic.py similarity index 100% rename from 05_modern_concurrency/threading_freethreading/tests/test_basic.py rename to modules/05_modern_concurrency/threading_freethreading/tests/test_basic.py diff --git a/06_typing_metaprogramming/README.md b/modules/06_typing_metaprogramming/README.md similarity index 100% rename from 06_typing_metaprogramming/README.md rename to modules/06_typing_metaprogramming/README.md diff --git a/06_typing_metaprogramming/abstract_base_classes/README.md b/modules/06_typing_metaprogramming/abstract_base_classes/README.md similarity index 100% rename from 06_typing_metaprogramming/abstract_base_classes/README.md rename to modules/06_typing_metaprogramming/abstract_base_classes/README.md diff --git a/06_typing_metaprogramming/abstract_base_classes/examples/example_basic.py b/modules/06_typing_metaprogramming/abstract_base_classes/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/abstract_base_classes/examples/example_basic.py rename to modules/06_typing_metaprogramming/abstract_base_classes/examples/example_basic.py diff --git a/06_typing_metaprogramming/abstract_base_classes/exercise/exercise_01.py b/modules/06_typing_metaprogramming/abstract_base_classes/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/abstract_base_classes/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/abstract_base_classes/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/abstract_base_classes/references/links.md b/modules/06_typing_metaprogramming/abstract_base_classes/references/links.md similarity index 100% rename from 06_typing_metaprogramming/abstract_base_classes/references/links.md rename to modules/06_typing_metaprogramming/abstract_base_classes/references/links.md diff --git a/06_typing_metaprogramming/abstract_base_classes/tests/test_basic.py b/modules/06_typing_metaprogramming/abstract_base_classes/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/abstract_base_classes/tests/test_basic.py rename to modules/06_typing_metaprogramming/abstract_base_classes/tests/test_basic.py diff --git a/06_typing_metaprogramming/advanced_descriptors/README.md b/modules/06_typing_metaprogramming/advanced_descriptors/README.md similarity index 100% rename from 06_typing_metaprogramming/advanced_descriptors/README.md rename to modules/06_typing_metaprogramming/advanced_descriptors/README.md diff --git a/06_typing_metaprogramming/advanced_descriptors/examples/example_basic.py b/modules/06_typing_metaprogramming/advanced_descriptors/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_descriptors/examples/example_basic.py rename to modules/06_typing_metaprogramming/advanced_descriptors/examples/example_basic.py diff --git a/06_typing_metaprogramming/advanced_descriptors/exercise/exercise_01.py b/modules/06_typing_metaprogramming/advanced_descriptors/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/advanced_descriptors/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/advanced_descriptors/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/advanced_descriptors/references/links.md b/modules/06_typing_metaprogramming/advanced_descriptors/references/links.md similarity index 100% rename from 06_typing_metaprogramming/advanced_descriptors/references/links.md rename to modules/06_typing_metaprogramming/advanced_descriptors/references/links.md diff --git a/06_typing_metaprogramming/advanced_descriptors/tests/test_basic.py b/modules/06_typing_metaprogramming/advanced_descriptors/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_descriptors/tests/test_basic.py rename to modules/06_typing_metaprogramming/advanced_descriptors/tests/test_basic.py diff --git a/06_typing_metaprogramming/advanced_metaclasses/README.md b/modules/06_typing_metaprogramming/advanced_metaclasses/README.md similarity index 100% rename from 06_typing_metaprogramming/advanced_metaclasses/README.md rename to modules/06_typing_metaprogramming/advanced_metaclasses/README.md diff --git a/06_typing_metaprogramming/advanced_metaclasses/examples/example_basic.py b/modules/06_typing_metaprogramming/advanced_metaclasses/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_metaclasses/examples/example_basic.py rename to modules/06_typing_metaprogramming/advanced_metaclasses/examples/example_basic.py diff --git a/06_typing_metaprogramming/advanced_metaclasses/exercise/exercise_01.py b/modules/06_typing_metaprogramming/advanced_metaclasses/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/advanced_metaclasses/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/advanced_metaclasses/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/advanced_metaclasses/references/links.md b/modules/06_typing_metaprogramming/advanced_metaclasses/references/links.md similarity index 100% rename from 06_typing_metaprogramming/advanced_metaclasses/references/links.md rename to modules/06_typing_metaprogramming/advanced_metaclasses/references/links.md diff --git a/06_typing_metaprogramming/advanced_metaclasses/tests/test_basic.py b/modules/06_typing_metaprogramming/advanced_metaclasses/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_metaclasses/tests/test_basic.py rename to modules/06_typing_metaprogramming/advanced_metaclasses/tests/test_basic.py diff --git a/06_typing_metaprogramming/advanced_typing/README.md b/modules/06_typing_metaprogramming/advanced_typing/README.md similarity index 100% rename from 06_typing_metaprogramming/advanced_typing/README.md rename to modules/06_typing_metaprogramming/advanced_typing/README.md diff --git a/06_typing_metaprogramming/advanced_typing/examples/example_basic.py b/modules/06_typing_metaprogramming/advanced_typing/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_typing/examples/example_basic.py rename to modules/06_typing_metaprogramming/advanced_typing/examples/example_basic.py diff --git a/06_typing_metaprogramming/advanced_typing/exercise/exercise_01.py b/modules/06_typing_metaprogramming/advanced_typing/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/advanced_typing/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/advanced_typing/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/advanced_typing/references/links.md b/modules/06_typing_metaprogramming/advanced_typing/references/links.md similarity index 100% rename from 06_typing_metaprogramming/advanced_typing/references/links.md rename to modules/06_typing_metaprogramming/advanced_typing/references/links.md diff --git a/06_typing_metaprogramming/advanced_typing/tests/test_basic.py b/modules/06_typing_metaprogramming/advanced_typing/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/advanced_typing/tests/test_basic.py rename to modules/06_typing_metaprogramming/advanced_typing/tests/test_basic.py diff --git a/06_typing_metaprogramming/ast_basics/README.md b/modules/06_typing_metaprogramming/ast_basics/README.md similarity index 100% rename from 06_typing_metaprogramming/ast_basics/README.md rename to modules/06_typing_metaprogramming/ast_basics/README.md diff --git a/06_typing_metaprogramming/ast_basics/examples/example_basic.py b/modules/06_typing_metaprogramming/ast_basics/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/ast_basics/examples/example_basic.py rename to modules/06_typing_metaprogramming/ast_basics/examples/example_basic.py diff --git a/06_typing_metaprogramming/ast_basics/exercise/exercise_01.py b/modules/06_typing_metaprogramming/ast_basics/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/ast_basics/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/ast_basics/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/ast_basics/references/links.md b/modules/06_typing_metaprogramming/ast_basics/references/links.md similarity index 100% rename from 06_typing_metaprogramming/ast_basics/references/links.md rename to modules/06_typing_metaprogramming/ast_basics/references/links.md diff --git a/06_typing_metaprogramming/ast_basics/tests/test_basic.py b/modules/06_typing_metaprogramming/ast_basics/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/ast_basics/tests/test_basic.py rename to modules/06_typing_metaprogramming/ast_basics/tests/test_basic.py diff --git a/06_typing_metaprogramming/ast_manipulation/README.md b/modules/06_typing_metaprogramming/ast_manipulation/README.md similarity index 100% rename from 06_typing_metaprogramming/ast_manipulation/README.md rename to modules/06_typing_metaprogramming/ast_manipulation/README.md diff --git a/06_typing_metaprogramming/ast_manipulation/examples/example_basic.py b/modules/06_typing_metaprogramming/ast_manipulation/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/ast_manipulation/examples/example_basic.py rename to modules/06_typing_metaprogramming/ast_manipulation/examples/example_basic.py diff --git a/06_typing_metaprogramming/ast_manipulation/exercise/exercise_01.py b/modules/06_typing_metaprogramming/ast_manipulation/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/ast_manipulation/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/ast_manipulation/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/ast_manipulation/references/links.md b/modules/06_typing_metaprogramming/ast_manipulation/references/links.md similarity index 100% rename from 06_typing_metaprogramming/ast_manipulation/references/links.md rename to modules/06_typing_metaprogramming/ast_manipulation/references/links.md diff --git a/06_typing_metaprogramming/ast_manipulation/tests/test_basic.py b/modules/06_typing_metaprogramming/ast_manipulation/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/ast_manipulation/tests/test_basic.py rename to modules/06_typing_metaprogramming/ast_manipulation/tests/test_basic.py diff --git a/06_typing_metaprogramming/basic_mypy/README.md b/modules/06_typing_metaprogramming/basic_mypy/README.md similarity index 100% rename from 06_typing_metaprogramming/basic_mypy/README.md rename to modules/06_typing_metaprogramming/basic_mypy/README.md diff --git a/06_typing_metaprogramming/basic_mypy/examples/example_basic.py b/modules/06_typing_metaprogramming/basic_mypy/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/basic_mypy/examples/example_basic.py rename to modules/06_typing_metaprogramming/basic_mypy/examples/example_basic.py diff --git a/06_typing_metaprogramming/basic_mypy/exercise/exercise_01.py b/modules/06_typing_metaprogramming/basic_mypy/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/basic_mypy/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/basic_mypy/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/basic_mypy/references/links.md b/modules/06_typing_metaprogramming/basic_mypy/references/links.md similarity index 100% rename from 06_typing_metaprogramming/basic_mypy/references/links.md rename to modules/06_typing_metaprogramming/basic_mypy/references/links.md diff --git a/06_typing_metaprogramming/basic_mypy/tests/test_basic.py b/modules/06_typing_metaprogramming/basic_mypy/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/basic_mypy/tests/test_basic.py rename to modules/06_typing_metaprogramming/basic_mypy/tests/test_basic.py diff --git a/06_typing_metaprogramming/basic_type_hints/README.md b/modules/06_typing_metaprogramming/basic_type_hints/README.md similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/README.md rename to modules/06_typing_metaprogramming/basic_type_hints/README.md diff --git a/06_typing_metaprogramming/basic_type_hints/examples/advanced_patterns.py b/modules/06_typing_metaprogramming/basic_type_hints/examples/advanced_patterns.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/examples/advanced_patterns.py rename to modules/06_typing_metaprogramming/basic_type_hints/examples/advanced_patterns.py diff --git a/06_typing_metaprogramming/basic_type_hints/examples/basic_annotations.py b/modules/06_typing_metaprogramming/basic_type_hints/examples/basic_annotations.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/examples/basic_annotations.py rename to modules/06_typing_metaprogramming/basic_type_hints/examples/basic_annotations.py diff --git a/06_typing_metaprogramming/basic_type_hints/examples/example_basic.py b/modules/06_typing_metaprogramming/basic_type_hints/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/examples/example_basic.py rename to modules/06_typing_metaprogramming/basic_type_hints/examples/example_basic.py diff --git a/06_typing_metaprogramming/basic_type_hints/exercise/advanced_exercise.py b/modules/06_typing_metaprogramming/basic_type_hints/exercise/advanced_exercise.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/exercise/advanced_exercise.py rename to modules/06_typing_metaprogramming/basic_type_hints/exercise/advanced_exercise.py diff --git a/06_typing_metaprogramming/basic_type_hints/exercise/basic_exercise.py b/modules/06_typing_metaprogramming/basic_type_hints/exercise/basic_exercise.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/exercise/basic_exercise.py rename to modules/06_typing_metaprogramming/basic_type_hints/exercise/basic_exercise.py diff --git a/06_typing_metaprogramming/basic_type_hints/exercise/exercise_01.py b/modules/06_typing_metaprogramming/basic_type_hints/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/basic_type_hints/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/basic_type_hints/exercise/intermediate_exercise.py b/modules/06_typing_metaprogramming/basic_type_hints/exercise/intermediate_exercise.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/exercise/intermediate_exercise.py rename to modules/06_typing_metaprogramming/basic_type_hints/exercise/intermediate_exercise.py diff --git a/06_typing_metaprogramming/basic_type_hints/references/links.md b/modules/06_typing_metaprogramming/basic_type_hints/references/links.md similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/references/links.md rename to modules/06_typing_metaprogramming/basic_type_hints/references/links.md diff --git a/06_typing_metaprogramming/basic_type_hints/tests/test_advanced.py b/modules/06_typing_metaprogramming/basic_type_hints/tests/test_advanced.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/tests/test_advanced.py rename to modules/06_typing_metaprogramming/basic_type_hints/tests/test_advanced.py diff --git a/06_typing_metaprogramming/basic_type_hints/tests/test_basic.py b/modules/06_typing_metaprogramming/basic_type_hints/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/tests/test_basic.py rename to modules/06_typing_metaprogramming/basic_type_hints/tests/test_basic.py diff --git a/06_typing_metaprogramming/basic_type_hints/tests/test_intermediate.py b/modules/06_typing_metaprogramming/basic_type_hints/tests/test_intermediate.py similarity index 100% rename from 06_typing_metaprogramming/basic_type_hints/tests/test_intermediate.py rename to modules/06_typing_metaprogramming/basic_type_hints/tests/test_intermediate.py diff --git a/06_typing_metaprogramming/class_decorators/README.md b/modules/06_typing_metaprogramming/class_decorators/README.md similarity index 100% rename from 06_typing_metaprogramming/class_decorators/README.md rename to modules/06_typing_metaprogramming/class_decorators/README.md diff --git a/06_typing_metaprogramming/class_decorators/examples/example_basic.py b/modules/06_typing_metaprogramming/class_decorators/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/class_decorators/examples/example_basic.py rename to modules/06_typing_metaprogramming/class_decorators/examples/example_basic.py diff --git a/06_typing_metaprogramming/class_decorators/exercise/exercise_01.py b/modules/06_typing_metaprogramming/class_decorators/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/class_decorators/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/class_decorators/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/class_decorators/references/links.md b/modules/06_typing_metaprogramming/class_decorators/references/links.md similarity index 100% rename from 06_typing_metaprogramming/class_decorators/references/links.md rename to modules/06_typing_metaprogramming/class_decorators/references/links.md diff --git a/06_typing_metaprogramming/class_decorators/tests/test_basic.py b/modules/06_typing_metaprogramming/class_decorators/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/class_decorators/tests/test_basic.py rename to modules/06_typing_metaprogramming/class_decorators/tests/test_basic.py diff --git a/06_typing_metaprogramming/dynamic_classes/README.md b/modules/06_typing_metaprogramming/dynamic_classes/README.md similarity index 100% rename from 06_typing_metaprogramming/dynamic_classes/README.md rename to modules/06_typing_metaprogramming/dynamic_classes/README.md diff --git a/06_typing_metaprogramming/dynamic_classes/examples/example_basic.py b/modules/06_typing_metaprogramming/dynamic_classes/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/dynamic_classes/examples/example_basic.py rename to modules/06_typing_metaprogramming/dynamic_classes/examples/example_basic.py diff --git a/06_typing_metaprogramming/dynamic_classes/exercise/exercise_01.py b/modules/06_typing_metaprogramming/dynamic_classes/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/dynamic_classes/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/dynamic_classes/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/dynamic_classes/references/links.md b/modules/06_typing_metaprogramming/dynamic_classes/references/links.md similarity index 100% rename from 06_typing_metaprogramming/dynamic_classes/references/links.md rename to modules/06_typing_metaprogramming/dynamic_classes/references/links.md diff --git a/06_typing_metaprogramming/dynamic_classes/tests/test_basic.py b/modules/06_typing_metaprogramming/dynamic_classes/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/dynamic_classes/tests/test_basic.py rename to modules/06_typing_metaprogramming/dynamic_classes/tests/test_basic.py diff --git a/06_typing_metaprogramming/exec_eval_compile/README.md b/modules/06_typing_metaprogramming/exec_eval_compile/README.md similarity index 100% rename from 06_typing_metaprogramming/exec_eval_compile/README.md rename to modules/06_typing_metaprogramming/exec_eval_compile/README.md diff --git a/06_typing_metaprogramming/exec_eval_compile/examples/example_basic.py b/modules/06_typing_metaprogramming/exec_eval_compile/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/exec_eval_compile/examples/example_basic.py rename to modules/06_typing_metaprogramming/exec_eval_compile/examples/example_basic.py diff --git a/06_typing_metaprogramming/exec_eval_compile/exercise/exercise_01.py b/modules/06_typing_metaprogramming/exec_eval_compile/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/exec_eval_compile/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/exec_eval_compile/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/exec_eval_compile/references/links.md b/modules/06_typing_metaprogramming/exec_eval_compile/references/links.md similarity index 100% rename from 06_typing_metaprogramming/exec_eval_compile/references/links.md rename to modules/06_typing_metaprogramming/exec_eval_compile/references/links.md diff --git a/06_typing_metaprogramming/exec_eval_compile/tests/test_basic.py b/modules/06_typing_metaprogramming/exec_eval_compile/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/exec_eval_compile/tests/test_basic.py rename to modules/06_typing_metaprogramming/exec_eval_compile/tests/test_basic.py diff --git a/06_typing_metaprogramming/generics_typevar/README.md b/modules/06_typing_metaprogramming/generics_typevar/README.md similarity index 100% rename from 06_typing_metaprogramming/generics_typevar/README.md rename to modules/06_typing_metaprogramming/generics_typevar/README.md diff --git a/06_typing_metaprogramming/generics_typevar/examples/example_basic.py b/modules/06_typing_metaprogramming/generics_typevar/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/generics_typevar/examples/example_basic.py rename to modules/06_typing_metaprogramming/generics_typevar/examples/example_basic.py diff --git a/06_typing_metaprogramming/generics_typevar/exercise/exercise_01.py b/modules/06_typing_metaprogramming/generics_typevar/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/generics_typevar/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/generics_typevar/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/generics_typevar/references/links.md b/modules/06_typing_metaprogramming/generics_typevar/references/links.md similarity index 100% rename from 06_typing_metaprogramming/generics_typevar/references/links.md rename to modules/06_typing_metaprogramming/generics_typevar/references/links.md diff --git a/06_typing_metaprogramming/generics_typevar/tests/test_basic.py b/modules/06_typing_metaprogramming/generics_typevar/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/generics_typevar/tests/test_basic.py rename to modules/06_typing_metaprogramming/generics_typevar/tests/test_basic.py diff --git a/06_typing_metaprogramming/init_subclass/README.md b/modules/06_typing_metaprogramming/init_subclass/README.md similarity index 100% rename from 06_typing_metaprogramming/init_subclass/README.md rename to modules/06_typing_metaprogramming/init_subclass/README.md diff --git a/06_typing_metaprogramming/init_subclass/examples/example_basic.py b/modules/06_typing_metaprogramming/init_subclass/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/init_subclass/examples/example_basic.py rename to modules/06_typing_metaprogramming/init_subclass/examples/example_basic.py diff --git a/06_typing_metaprogramming/init_subclass/exercise/exercise_01.py b/modules/06_typing_metaprogramming/init_subclass/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/init_subclass/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/init_subclass/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/init_subclass/references/links.md b/modules/06_typing_metaprogramming/init_subclass/references/links.md similarity index 100% rename from 06_typing_metaprogramming/init_subclass/references/links.md rename to modules/06_typing_metaprogramming/init_subclass/references/links.md diff --git a/06_typing_metaprogramming/init_subclass/tests/test_basic.py b/modules/06_typing_metaprogramming/init_subclass/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/init_subclass/tests/test_basic.py rename to modules/06_typing_metaprogramming/init_subclass/tests/test_basic.py diff --git a/06_typing_metaprogramming/introspection_inspect/README.md b/modules/06_typing_metaprogramming/introspection_inspect/README.md similarity index 100% rename from 06_typing_metaprogramming/introspection_inspect/README.md rename to modules/06_typing_metaprogramming/introspection_inspect/README.md diff --git a/06_typing_metaprogramming/introspection_inspect/examples/example_basic.py b/modules/06_typing_metaprogramming/introspection_inspect/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/introspection_inspect/examples/example_basic.py rename to modules/06_typing_metaprogramming/introspection_inspect/examples/example_basic.py diff --git a/06_typing_metaprogramming/introspection_inspect/exercise/exercise_01.py b/modules/06_typing_metaprogramming/introspection_inspect/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/introspection_inspect/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/introspection_inspect/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/introspection_inspect/references/links.md b/modules/06_typing_metaprogramming/introspection_inspect/references/links.md similarity index 100% rename from 06_typing_metaprogramming/introspection_inspect/references/links.md rename to modules/06_typing_metaprogramming/introspection_inspect/references/links.md diff --git a/06_typing_metaprogramming/introspection_inspect/tests/test_basic.py b/modules/06_typing_metaprogramming/introspection_inspect/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/introspection_inspect/tests/test_basic.py rename to modules/06_typing_metaprogramming/introspection_inspect/tests/test_basic.py diff --git a/06_typing_metaprogramming/literal_types/README.md b/modules/06_typing_metaprogramming/literal_types/README.md similarity index 100% rename from 06_typing_metaprogramming/literal_types/README.md rename to modules/06_typing_metaprogramming/literal_types/README.md diff --git a/06_typing_metaprogramming/literal_types/examples/example_basic.py b/modules/06_typing_metaprogramming/literal_types/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/literal_types/examples/example_basic.py rename to modules/06_typing_metaprogramming/literal_types/examples/example_basic.py diff --git a/06_typing_metaprogramming/literal_types/exercise/exercise_01.py b/modules/06_typing_metaprogramming/literal_types/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/literal_types/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/literal_types/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/literal_types/references/links.md b/modules/06_typing_metaprogramming/literal_types/references/links.md similarity index 100% rename from 06_typing_metaprogramming/literal_types/references/links.md rename to modules/06_typing_metaprogramming/literal_types/references/links.md diff --git a/06_typing_metaprogramming/literal_types/tests/test_basic.py b/modules/06_typing_metaprogramming/literal_types/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/literal_types/tests/test_basic.py rename to modules/06_typing_metaprogramming/literal_types/tests/test_basic.py diff --git a/06_typing_metaprogramming/metaclasses_intro/README.md b/modules/06_typing_metaprogramming/metaclasses_intro/README.md similarity index 100% rename from 06_typing_metaprogramming/metaclasses_intro/README.md rename to modules/06_typing_metaprogramming/metaclasses_intro/README.md diff --git a/06_typing_metaprogramming/metaclasses_intro/examples/example_basic.py b/modules/06_typing_metaprogramming/metaclasses_intro/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/metaclasses_intro/examples/example_basic.py rename to modules/06_typing_metaprogramming/metaclasses_intro/examples/example_basic.py diff --git a/06_typing_metaprogramming/metaclasses_intro/exercise/exercise_01.py b/modules/06_typing_metaprogramming/metaclasses_intro/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/metaclasses_intro/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/metaclasses_intro/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/metaclasses_intro/references/links.md b/modules/06_typing_metaprogramming/metaclasses_intro/references/links.md similarity index 100% rename from 06_typing_metaprogramming/metaclasses_intro/references/links.md rename to modules/06_typing_metaprogramming/metaclasses_intro/references/links.md diff --git a/06_typing_metaprogramming/metaclasses_intro/tests/test_basic.py b/modules/06_typing_metaprogramming/metaclasses_intro/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/metaclasses_intro/tests/test_basic.py rename to modules/06_typing_metaprogramming/metaclasses_intro/tests/test_basic.py diff --git a/06_typing_metaprogramming/overload/README.md b/modules/06_typing_metaprogramming/overload/README.md similarity index 100% rename from 06_typing_metaprogramming/overload/README.md rename to modules/06_typing_metaprogramming/overload/README.md diff --git a/06_typing_metaprogramming/overload/examples/example_basic.py b/modules/06_typing_metaprogramming/overload/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/overload/examples/example_basic.py rename to modules/06_typing_metaprogramming/overload/examples/example_basic.py diff --git a/06_typing_metaprogramming/overload/exercise/exercise_01.py b/modules/06_typing_metaprogramming/overload/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/overload/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/overload/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/overload/references/links.md b/modules/06_typing_metaprogramming/overload/references/links.md similarity index 100% rename from 06_typing_metaprogramming/overload/references/links.md rename to modules/06_typing_metaprogramming/overload/references/links.md diff --git a/06_typing_metaprogramming/overload/tests/test_basic.py b/modules/06_typing_metaprogramming/overload/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/overload/tests/test_basic.py rename to modules/06_typing_metaprogramming/overload/tests/test_basic.py diff --git a/06_typing_metaprogramming/protocol_structural_typing/README.md b/modules/06_typing_metaprogramming/protocol_structural_typing/README.md similarity index 100% rename from 06_typing_metaprogramming/protocol_structural_typing/README.md rename to modules/06_typing_metaprogramming/protocol_structural_typing/README.md diff --git a/06_typing_metaprogramming/protocol_structural_typing/examples/example_basic.py b/modules/06_typing_metaprogramming/protocol_structural_typing/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/protocol_structural_typing/examples/example_basic.py rename to modules/06_typing_metaprogramming/protocol_structural_typing/examples/example_basic.py diff --git a/06_typing_metaprogramming/protocol_structural_typing/exercise/exercise_01.py b/modules/06_typing_metaprogramming/protocol_structural_typing/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/protocol_structural_typing/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/protocol_structural_typing/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/protocol_structural_typing/references/links.md b/modules/06_typing_metaprogramming/protocol_structural_typing/references/links.md similarity index 100% rename from 06_typing_metaprogramming/protocol_structural_typing/references/links.md rename to modules/06_typing_metaprogramming/protocol_structural_typing/references/links.md diff --git a/06_typing_metaprogramming/protocol_structural_typing/tests/test_basic.py b/modules/06_typing_metaprogramming/protocol_structural_typing/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/protocol_structural_typing/tests/test_basic.py rename to modules/06_typing_metaprogramming/protocol_structural_typing/tests/test_basic.py diff --git a/06_typing_metaprogramming/runtime_type_checking/README.md b/modules/06_typing_metaprogramming/runtime_type_checking/README.md similarity index 100% rename from 06_typing_metaprogramming/runtime_type_checking/README.md rename to modules/06_typing_metaprogramming/runtime_type_checking/README.md diff --git a/06_typing_metaprogramming/runtime_type_checking/examples/example_basic.py b/modules/06_typing_metaprogramming/runtime_type_checking/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/runtime_type_checking/examples/example_basic.py rename to modules/06_typing_metaprogramming/runtime_type_checking/examples/example_basic.py diff --git a/06_typing_metaprogramming/runtime_type_checking/exercise/exercise_01.py b/modules/06_typing_metaprogramming/runtime_type_checking/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/runtime_type_checking/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/runtime_type_checking/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/runtime_type_checking/references/links.md b/modules/06_typing_metaprogramming/runtime_type_checking/references/links.md similarity index 100% rename from 06_typing_metaprogramming/runtime_type_checking/references/links.md rename to modules/06_typing_metaprogramming/runtime_type_checking/references/links.md diff --git a/06_typing_metaprogramming/runtime_type_checking/tests/test_basic.py b/modules/06_typing_metaprogramming/runtime_type_checking/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/runtime_type_checking/tests/test_basic.py rename to modules/06_typing_metaprogramming/runtime_type_checking/tests/test_basic.py diff --git a/06_typing_metaprogramming/set_name_descriptor/README.md b/modules/06_typing_metaprogramming/set_name_descriptor/README.md similarity index 100% rename from 06_typing_metaprogramming/set_name_descriptor/README.md rename to modules/06_typing_metaprogramming/set_name_descriptor/README.md diff --git a/06_typing_metaprogramming/set_name_descriptor/examples/example_basic.py b/modules/06_typing_metaprogramming/set_name_descriptor/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/set_name_descriptor/examples/example_basic.py rename to modules/06_typing_metaprogramming/set_name_descriptor/examples/example_basic.py diff --git a/06_typing_metaprogramming/set_name_descriptor/exercise/exercise_01.py b/modules/06_typing_metaprogramming/set_name_descriptor/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/set_name_descriptor/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/set_name_descriptor/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/set_name_descriptor/references/links.md b/modules/06_typing_metaprogramming/set_name_descriptor/references/links.md similarity index 100% rename from 06_typing_metaprogramming/set_name_descriptor/references/links.md rename to modules/06_typing_metaprogramming/set_name_descriptor/references/links.md diff --git a/06_typing_metaprogramming/set_name_descriptor/tests/test_basic.py b/modules/06_typing_metaprogramming/set_name_descriptor/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/set_name_descriptor/tests/test_basic.py rename to modules/06_typing_metaprogramming/set_name_descriptor/tests/test_basic.py diff --git a/06_typing_metaprogramming/typeddict_namedtuple/README.md b/modules/06_typing_metaprogramming/typeddict_namedtuple/README.md similarity index 100% rename from 06_typing_metaprogramming/typeddict_namedtuple/README.md rename to modules/06_typing_metaprogramming/typeddict_namedtuple/README.md diff --git a/06_typing_metaprogramming/typeddict_namedtuple/examples/example_basic.py b/modules/06_typing_metaprogramming/typeddict_namedtuple/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/typeddict_namedtuple/examples/example_basic.py rename to modules/06_typing_metaprogramming/typeddict_namedtuple/examples/example_basic.py diff --git a/06_typing_metaprogramming/typeddict_namedtuple/exercise/exercise_01.py b/modules/06_typing_metaprogramming/typeddict_namedtuple/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/typeddict_namedtuple/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/typeddict_namedtuple/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/typeddict_namedtuple/references/links.md b/modules/06_typing_metaprogramming/typeddict_namedtuple/references/links.md similarity index 100% rename from 06_typing_metaprogramming/typeddict_namedtuple/references/links.md rename to modules/06_typing_metaprogramming/typeddict_namedtuple/references/links.md diff --git a/06_typing_metaprogramming/typeddict_namedtuple/tests/test_basic.py b/modules/06_typing_metaprogramming/typeddict_namedtuple/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/typeddict_namedtuple/tests/test_basic.py rename to modules/06_typing_metaprogramming/typeddict_namedtuple/tests/test_basic.py diff --git a/06_typing_metaprogramming/union_optional/README.md b/modules/06_typing_metaprogramming/union_optional/README.md similarity index 100% rename from 06_typing_metaprogramming/union_optional/README.md rename to modules/06_typing_metaprogramming/union_optional/README.md diff --git a/06_typing_metaprogramming/union_optional/examples/example_basic.py b/modules/06_typing_metaprogramming/union_optional/examples/example_basic.py similarity index 100% rename from 06_typing_metaprogramming/union_optional/examples/example_basic.py rename to modules/06_typing_metaprogramming/union_optional/examples/example_basic.py diff --git a/06_typing_metaprogramming/union_optional/exercise/exercise_01.py b/modules/06_typing_metaprogramming/union_optional/exercise/exercise_01.py similarity index 100% rename from 06_typing_metaprogramming/union_optional/exercise/exercise_01.py rename to modules/06_typing_metaprogramming/union_optional/exercise/exercise_01.py diff --git a/06_typing_metaprogramming/union_optional/references/links.md b/modules/06_typing_metaprogramming/union_optional/references/links.md similarity index 100% rename from 06_typing_metaprogramming/union_optional/references/links.md rename to modules/06_typing_metaprogramming/union_optional/references/links.md diff --git a/06_typing_metaprogramming/union_optional/tests/test_basic.py b/modules/06_typing_metaprogramming/union_optional/tests/test_basic.py similarity index 100% rename from 06_typing_metaprogramming/union_optional/tests/test_basic.py rename to modules/06_typing_metaprogramming/union_optional/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/README.md b/modules/07_design_patterns/01_basic_gof/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/README.md rename to modules/07_design_patterns/01_basic_gof/README.md diff --git a/07_design_patterns/01_basic_gof/adapter/README.md b/modules/07_design_patterns/01_basic_gof/adapter/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/adapter/README.md rename to modules/07_design_patterns/01_basic_gof/adapter/README.md diff --git a/07_design_patterns/01_basic_gof/adapter/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/adapter/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/adapter/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/adapter/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/adapter/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/adapter/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/adapter/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/adapter/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/adapter/references/links.md b/modules/07_design_patterns/01_basic_gof/adapter/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/adapter/references/links.md rename to modules/07_design_patterns/01_basic_gof/adapter/references/links.md diff --git a/07_design_patterns/01_basic_gof/adapter/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/adapter/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/adapter/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/adapter/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/builder/README.md b/modules/07_design_patterns/01_basic_gof/builder/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/builder/README.md rename to modules/07_design_patterns/01_basic_gof/builder/README.md diff --git a/07_design_patterns/01_basic_gof/builder/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/builder/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/builder/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/builder/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/builder/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/builder/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/builder/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/builder/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/builder/references/links.md b/modules/07_design_patterns/01_basic_gof/builder/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/builder/references/links.md rename to modules/07_design_patterns/01_basic_gof/builder/references/links.md diff --git a/07_design_patterns/01_basic_gof/builder/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/builder/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/builder/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/builder/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/command/README.md b/modules/07_design_patterns/01_basic_gof/command/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/command/README.md rename to modules/07_design_patterns/01_basic_gof/command/README.md diff --git a/07_design_patterns/01_basic_gof/command/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/command/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/command/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/command/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/command/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/command/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/command/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/command/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/command/references/links.md b/modules/07_design_patterns/01_basic_gof/command/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/command/references/links.md rename to modules/07_design_patterns/01_basic_gof/command/references/links.md diff --git a/07_design_patterns/01_basic_gof/command/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/command/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/command/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/command/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/decorator_pattern/README.md b/modules/07_design_patterns/01_basic_gof/decorator_pattern/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/decorator_pattern/README.md rename to modules/07_design_patterns/01_basic_gof/decorator_pattern/README.md diff --git a/07_design_patterns/01_basic_gof/decorator_pattern/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/decorator_pattern/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/decorator_pattern/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/decorator_pattern/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/decorator_pattern/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/decorator_pattern/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/decorator_pattern/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/decorator_pattern/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/decorator_pattern/references/links.md b/modules/07_design_patterns/01_basic_gof/decorator_pattern/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/decorator_pattern/references/links.md rename to modules/07_design_patterns/01_basic_gof/decorator_pattern/references/links.md diff --git a/07_design_patterns/01_basic_gof/decorator_pattern/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/decorator_pattern/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/decorator_pattern/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/decorator_pattern/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/facade/README.md b/modules/07_design_patterns/01_basic_gof/facade/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/facade/README.md rename to modules/07_design_patterns/01_basic_gof/facade/README.md diff --git a/07_design_patterns/01_basic_gof/facade/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/facade/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/facade/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/facade/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/facade/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/facade/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/facade/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/facade/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/facade/references/links.md b/modules/07_design_patterns/01_basic_gof/facade/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/facade/references/links.md rename to modules/07_design_patterns/01_basic_gof/facade/references/links.md diff --git a/07_design_patterns/01_basic_gof/facade/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/facade/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/facade/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/facade/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/factory_method/README.md b/modules/07_design_patterns/01_basic_gof/factory_method/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/factory_method/README.md rename to modules/07_design_patterns/01_basic_gof/factory_method/README.md diff --git a/07_design_patterns/01_basic_gof/factory_method/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/factory_method/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/factory_method/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/factory_method/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/factory_method/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/factory_method/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/factory_method/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/factory_method/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/factory_method/references/links.md b/modules/07_design_patterns/01_basic_gof/factory_method/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/factory_method/references/links.md rename to modules/07_design_patterns/01_basic_gof/factory_method/references/links.md diff --git a/07_design_patterns/01_basic_gof/factory_method/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/factory_method/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/factory_method/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/factory_method/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/iterator/README.md b/modules/07_design_patterns/01_basic_gof/iterator/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/iterator/README.md rename to modules/07_design_patterns/01_basic_gof/iterator/README.md diff --git a/07_design_patterns/01_basic_gof/iterator/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/iterator/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/iterator/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/iterator/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/iterator/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/iterator/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/iterator/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/iterator/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/iterator/references/links.md b/modules/07_design_patterns/01_basic_gof/iterator/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/iterator/references/links.md rename to modules/07_design_patterns/01_basic_gof/iterator/references/links.md diff --git a/07_design_patterns/01_basic_gof/iterator/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/iterator/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/iterator/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/iterator/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/observer/README.md b/modules/07_design_patterns/01_basic_gof/observer/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/observer/README.md rename to modules/07_design_patterns/01_basic_gof/observer/README.md diff --git a/07_design_patterns/01_basic_gof/observer/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/observer/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/observer/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/observer/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/observer/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/observer/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/observer/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/observer/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/observer/references/links.md b/modules/07_design_patterns/01_basic_gof/observer/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/observer/references/links.md rename to modules/07_design_patterns/01_basic_gof/observer/references/links.md diff --git a/07_design_patterns/01_basic_gof/observer/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/observer/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/observer/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/observer/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/singleton/README.md b/modules/07_design_patterns/01_basic_gof/singleton/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/singleton/README.md rename to modules/07_design_patterns/01_basic_gof/singleton/README.md diff --git a/07_design_patterns/01_basic_gof/singleton/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/singleton/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/singleton/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/singleton/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/singleton/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/singleton/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/singleton/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/singleton/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/singleton/references/links.md b/modules/07_design_patterns/01_basic_gof/singleton/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/singleton/references/links.md rename to modules/07_design_patterns/01_basic_gof/singleton/references/links.md diff --git a/07_design_patterns/01_basic_gof/singleton/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/singleton/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/singleton/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/singleton/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/strategy/README.md b/modules/07_design_patterns/01_basic_gof/strategy/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/strategy/README.md rename to modules/07_design_patterns/01_basic_gof/strategy/README.md diff --git a/07_design_patterns/01_basic_gof/strategy/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/strategy/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/strategy/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/strategy/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/strategy/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/strategy/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/strategy/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/strategy/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/strategy/references/links.md b/modules/07_design_patterns/01_basic_gof/strategy/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/strategy/references/links.md rename to modules/07_design_patterns/01_basic_gof/strategy/references/links.md diff --git a/07_design_patterns/01_basic_gof/strategy/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/strategy/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/strategy/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/strategy/tests/test_basic.py diff --git a/07_design_patterns/01_basic_gof/template_method/README.md b/modules/07_design_patterns/01_basic_gof/template_method/README.md similarity index 100% rename from 07_design_patterns/01_basic_gof/template_method/README.md rename to modules/07_design_patterns/01_basic_gof/template_method/README.md diff --git a/07_design_patterns/01_basic_gof/template_method/examples/example_basic.py b/modules/07_design_patterns/01_basic_gof/template_method/examples/example_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/template_method/examples/example_basic.py rename to modules/07_design_patterns/01_basic_gof/template_method/examples/example_basic.py diff --git a/07_design_patterns/01_basic_gof/template_method/exercise/exercise_01.py b/modules/07_design_patterns/01_basic_gof/template_method/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/01_basic_gof/template_method/exercise/exercise_01.py rename to modules/07_design_patterns/01_basic_gof/template_method/exercise/exercise_01.py diff --git a/07_design_patterns/01_basic_gof/template_method/references/links.md b/modules/07_design_patterns/01_basic_gof/template_method/references/links.md similarity index 100% rename from 07_design_patterns/01_basic_gof/template_method/references/links.md rename to modules/07_design_patterns/01_basic_gof/template_method/references/links.md diff --git a/07_design_patterns/01_basic_gof/template_method/tests/test_basic.py b/modules/07_design_patterns/01_basic_gof/template_method/tests/test_basic.py similarity index 100% rename from 07_design_patterns/01_basic_gof/template_method/tests/test_basic.py rename to modules/07_design_patterns/01_basic_gof/template_method/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/README.md b/modules/07_design_patterns/02_pythonic_patterns/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/README.md rename to modules/07_design_patterns/02_pythonic_patterns/README.md diff --git a/07_design_patterns/02_pythonic_patterns/borg_monostate/README.md b/modules/07_design_patterns/02_pythonic_patterns/borg_monostate/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/borg_monostate/README.md rename to modules/07_design_patterns/02_pythonic_patterns/borg_monostate/README.md diff --git a/07_design_patterns/02_pythonic_patterns/borg_monostate/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/borg_monostate/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/borg_monostate/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/borg_monostate/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/borg_monostate/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/borg_monostate/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/borg_monostate/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/borg_monostate/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/borg_monostate/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/borg_monostate/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/borg_monostate/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/borg_monostate/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/borg_monostate/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/borg_monostate/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/borg_monostate/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/borg_monostate/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/context_manager/README.md b/modules/07_design_patterns/02_pythonic_patterns/context_manager/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/context_manager/README.md rename to modules/07_design_patterns/02_pythonic_patterns/context_manager/README.md diff --git a/07_design_patterns/02_pythonic_patterns/context_manager/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/context_manager/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/context_manager/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/context_manager/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/context_manager/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/context_manager/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/context_manager/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/context_manager/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/context_manager/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/context_manager/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/context_manager/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/context_manager/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/context_manager/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/context_manager/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/context_manager/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/context_manager/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/coroutine/README.md b/modules/07_design_patterns/02_pythonic_patterns/coroutine/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/coroutine/README.md rename to modules/07_design_patterns/02_pythonic_patterns/coroutine/README.md diff --git a/07_design_patterns/02_pythonic_patterns/coroutine/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/coroutine/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/coroutine/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/coroutine/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/coroutine/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/coroutine/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/coroutine/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/coroutine/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/coroutine/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/coroutine/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/coroutine/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/coroutine/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/coroutine/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/coroutine/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/coroutine/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/coroutine/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/dataclass/README.md b/modules/07_design_patterns/02_pythonic_patterns/dataclass/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/dataclass/README.md rename to modules/07_design_patterns/02_pythonic_patterns/dataclass/README.md diff --git a/07_design_patterns/02_pythonic_patterns/dataclass/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/dataclass/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/dataclass/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/dataclass/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/dataclass/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/dataclass/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/dataclass/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/dataclass/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/dataclass/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/dataclass/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/dataclass/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/dataclass/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/dataclass/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/dataclass/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/dataclass/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/dataclass/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/decorator_funcion/README.md b/modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/decorator_funcion/README.md rename to modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/README.md diff --git a/07_design_patterns/02_pythonic_patterns/decorator_funcion/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/decorator_funcion/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/decorator_funcion/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/decorator_funcion/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/decorator_funcion/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/decorator_funcion/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/decorator_funcion/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/decorator_funcion/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/decorator_funcion/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/descriptor/README.md b/modules/07_design_patterns/02_pythonic_patterns/descriptor/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/descriptor/README.md rename to modules/07_design_patterns/02_pythonic_patterns/descriptor/README.md diff --git a/07_design_patterns/02_pythonic_patterns/descriptor/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/descriptor/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/descriptor/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/descriptor/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/descriptor/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/descriptor/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/descriptor/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/descriptor/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/descriptor/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/descriptor/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/descriptor/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/descriptor/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/descriptor/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/descriptor/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/descriptor/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/descriptor/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/generator/README.md b/modules/07_design_patterns/02_pythonic_patterns/generator/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/generator/README.md rename to modules/07_design_patterns/02_pythonic_patterns/generator/README.md diff --git a/07_design_patterns/02_pythonic_patterns/generator/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/generator/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/generator/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/generator/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/generator/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/generator/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/generator/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/generator/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/generator/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/generator/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/generator/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/generator/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/generator/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/generator/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/generator/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/generator/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/lazy_property/README.md b/modules/07_design_patterns/02_pythonic_patterns/lazy_property/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/lazy_property/README.md rename to modules/07_design_patterns/02_pythonic_patterns/lazy_property/README.md diff --git a/07_design_patterns/02_pythonic_patterns/lazy_property/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/lazy_property/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/lazy_property/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/lazy_property/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/lazy_property/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/lazy_property/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/lazy_property/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/lazy_property/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/lazy_property/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/lazy_property/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/lazy_property/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/lazy_property/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/lazy_property/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/lazy_property/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/lazy_property/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/lazy_property/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/mixin/README.md b/modules/07_design_patterns/02_pythonic_patterns/mixin/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/mixin/README.md rename to modules/07_design_patterns/02_pythonic_patterns/mixin/README.md diff --git a/07_design_patterns/02_pythonic_patterns/mixin/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/mixin/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/mixin/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/mixin/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/mixin/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/mixin/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/mixin/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/mixin/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/mixin/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/mixin/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/mixin/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/mixin/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/mixin/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/mixin/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/mixin/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/mixin/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/plugin_system/README.md b/modules/07_design_patterns/02_pythonic_patterns/plugin_system/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/plugin_system/README.md rename to modules/07_design_patterns/02_pythonic_patterns/plugin_system/README.md diff --git a/07_design_patterns/02_pythonic_patterns/plugin_system/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/plugin_system/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/plugin_system/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/plugin_system/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/plugin_system/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/plugin_system/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/plugin_system/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/plugin_system/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/plugin_system/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/plugin_system/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/plugin_system/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/plugin_system/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/plugin_system/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/plugin_system/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/plugin_system/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/plugin_system/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/property/README.md b/modules/07_design_patterns/02_pythonic_patterns/property/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/property/README.md rename to modules/07_design_patterns/02_pythonic_patterns/property/README.md diff --git a/07_design_patterns/02_pythonic_patterns/property/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/property/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/property/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/property/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/property/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/property/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/property/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/property/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/property/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/property/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/property/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/property/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/property/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/property/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/property/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/property/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/protocol/README.md b/modules/07_design_patterns/02_pythonic_patterns/protocol/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/protocol/README.md rename to modules/07_design_patterns/02_pythonic_patterns/protocol/README.md diff --git a/07_design_patterns/02_pythonic_patterns/protocol/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/protocol/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/protocol/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/protocol/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/protocol/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/protocol/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/protocol/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/protocol/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/protocol/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/protocol/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/protocol/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/protocol/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/protocol/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/protocol/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/protocol/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/protocol/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/registry/README.md b/modules/07_design_patterns/02_pythonic_patterns/registry/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/registry/README.md rename to modules/07_design_patterns/02_pythonic_patterns/registry/README.md diff --git a/07_design_patterns/02_pythonic_patterns/registry/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/registry/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/registry/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/registry/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/registry/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/registry/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/registry/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/registry/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/registry/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/registry/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/registry/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/registry/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/registry/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/registry/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/registry/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/registry/tests/test_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/sentinel/README.md b/modules/07_design_patterns/02_pythonic_patterns/sentinel/README.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/sentinel/README.md rename to modules/07_design_patterns/02_pythonic_patterns/sentinel/README.md diff --git a/07_design_patterns/02_pythonic_patterns/sentinel/examples/example_basic.py b/modules/07_design_patterns/02_pythonic_patterns/sentinel/examples/example_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/sentinel/examples/example_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/sentinel/examples/example_basic.py diff --git a/07_design_patterns/02_pythonic_patterns/sentinel/exercise/exercise_01.py b/modules/07_design_patterns/02_pythonic_patterns/sentinel/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/sentinel/exercise/exercise_01.py rename to modules/07_design_patterns/02_pythonic_patterns/sentinel/exercise/exercise_01.py diff --git a/07_design_patterns/02_pythonic_patterns/sentinel/references/links.md b/modules/07_design_patterns/02_pythonic_patterns/sentinel/references/links.md similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/sentinel/references/links.md rename to modules/07_design_patterns/02_pythonic_patterns/sentinel/references/links.md diff --git a/07_design_patterns/02_pythonic_patterns/sentinel/tests/test_basic.py b/modules/07_design_patterns/02_pythonic_patterns/sentinel/tests/test_basic.py similarity index 100% rename from 07_design_patterns/02_pythonic_patterns/sentinel/tests/test_basic.py rename to modules/07_design_patterns/02_pythonic_patterns/sentinel/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/README.md b/modules/07_design_patterns/03_advanced_gof/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/README.md rename to modules/07_design_patterns/03_advanced_gof/README.md diff --git a/07_design_patterns/03_advanced_gof/abstract_factory/README.md b/modules/07_design_patterns/03_advanced_gof/abstract_factory/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/abstract_factory/README.md rename to modules/07_design_patterns/03_advanced_gof/abstract_factory/README.md diff --git a/07_design_patterns/03_advanced_gof/abstract_factory/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/abstract_factory/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/abstract_factory/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/abstract_factory/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/abstract_factory/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/abstract_factory/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/abstract_factory/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/abstract_factory/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/abstract_factory/references/links.md b/modules/07_design_patterns/03_advanced_gof/abstract_factory/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/abstract_factory/references/links.md rename to modules/07_design_patterns/03_advanced_gof/abstract_factory/references/links.md diff --git a/07_design_patterns/03_advanced_gof/abstract_factory/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/abstract_factory/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/abstract_factory/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/abstract_factory/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/bridge/README.md b/modules/07_design_patterns/03_advanced_gof/bridge/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/bridge/README.md rename to modules/07_design_patterns/03_advanced_gof/bridge/README.md diff --git a/07_design_patterns/03_advanced_gof/bridge/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/bridge/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/bridge/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/bridge/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/bridge/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/bridge/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/bridge/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/bridge/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/bridge/references/links.md b/modules/07_design_patterns/03_advanced_gof/bridge/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/bridge/references/links.md rename to modules/07_design_patterns/03_advanced_gof/bridge/references/links.md diff --git a/07_design_patterns/03_advanced_gof/bridge/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/bridge/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/bridge/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/bridge/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/chain_of_responsibility/README.md b/modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/chain_of_responsibility/README.md rename to modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/README.md diff --git a/07_design_patterns/03_advanced_gof/chain_of_responsibility/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/chain_of_responsibility/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/chain_of_responsibility/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/chain_of_responsibility/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/chain_of_responsibility/references/links.md b/modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/chain_of_responsibility/references/links.md rename to modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/references/links.md diff --git a/07_design_patterns/03_advanced_gof/chain_of_responsibility/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/chain_of_responsibility/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/chain_of_responsibility/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/composite/README.md b/modules/07_design_patterns/03_advanced_gof/composite/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/composite/README.md rename to modules/07_design_patterns/03_advanced_gof/composite/README.md diff --git a/07_design_patterns/03_advanced_gof/composite/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/composite/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/composite/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/composite/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/composite/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/composite/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/composite/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/composite/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/composite/references/links.md b/modules/07_design_patterns/03_advanced_gof/composite/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/composite/references/links.md rename to modules/07_design_patterns/03_advanced_gof/composite/references/links.md diff --git a/07_design_patterns/03_advanced_gof/composite/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/composite/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/composite/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/composite/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/flyweight/README.md b/modules/07_design_patterns/03_advanced_gof/flyweight/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/flyweight/README.md rename to modules/07_design_patterns/03_advanced_gof/flyweight/README.md diff --git a/07_design_patterns/03_advanced_gof/flyweight/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/flyweight/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/flyweight/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/flyweight/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/flyweight/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/flyweight/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/flyweight/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/flyweight/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/flyweight/references/links.md b/modules/07_design_patterns/03_advanced_gof/flyweight/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/flyweight/references/links.md rename to modules/07_design_patterns/03_advanced_gof/flyweight/references/links.md diff --git a/07_design_patterns/03_advanced_gof/flyweight/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/flyweight/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/flyweight/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/flyweight/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/interpreter/README.md b/modules/07_design_patterns/03_advanced_gof/interpreter/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/interpreter/README.md rename to modules/07_design_patterns/03_advanced_gof/interpreter/README.md diff --git a/07_design_patterns/03_advanced_gof/interpreter/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/interpreter/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/interpreter/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/interpreter/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/interpreter/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/interpreter/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/interpreter/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/interpreter/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/interpreter/references/links.md b/modules/07_design_patterns/03_advanced_gof/interpreter/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/interpreter/references/links.md rename to modules/07_design_patterns/03_advanced_gof/interpreter/references/links.md diff --git a/07_design_patterns/03_advanced_gof/interpreter/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/interpreter/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/interpreter/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/interpreter/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/mediator/README.md b/modules/07_design_patterns/03_advanced_gof/mediator/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/mediator/README.md rename to modules/07_design_patterns/03_advanced_gof/mediator/README.md diff --git a/07_design_patterns/03_advanced_gof/mediator/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/mediator/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/mediator/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/mediator/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/mediator/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/mediator/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/mediator/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/mediator/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/mediator/references/links.md b/modules/07_design_patterns/03_advanced_gof/mediator/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/mediator/references/links.md rename to modules/07_design_patterns/03_advanced_gof/mediator/references/links.md diff --git a/07_design_patterns/03_advanced_gof/mediator/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/mediator/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/mediator/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/mediator/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/memento/README.md b/modules/07_design_patterns/03_advanced_gof/memento/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/memento/README.md rename to modules/07_design_patterns/03_advanced_gof/memento/README.md diff --git a/07_design_patterns/03_advanced_gof/memento/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/memento/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/memento/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/memento/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/memento/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/memento/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/memento/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/memento/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/memento/references/links.md b/modules/07_design_patterns/03_advanced_gof/memento/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/memento/references/links.md rename to modules/07_design_patterns/03_advanced_gof/memento/references/links.md diff --git a/07_design_patterns/03_advanced_gof/memento/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/memento/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/memento/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/memento/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/prototype/README.md b/modules/07_design_patterns/03_advanced_gof/prototype/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/prototype/README.md rename to modules/07_design_patterns/03_advanced_gof/prototype/README.md diff --git a/07_design_patterns/03_advanced_gof/prototype/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/prototype/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/prototype/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/prototype/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/prototype/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/prototype/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/prototype/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/prototype/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/prototype/references/links.md b/modules/07_design_patterns/03_advanced_gof/prototype/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/prototype/references/links.md rename to modules/07_design_patterns/03_advanced_gof/prototype/references/links.md diff --git a/07_design_patterns/03_advanced_gof/prototype/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/prototype/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/prototype/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/prototype/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/proxy/README.md b/modules/07_design_patterns/03_advanced_gof/proxy/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/proxy/README.md rename to modules/07_design_patterns/03_advanced_gof/proxy/README.md diff --git a/07_design_patterns/03_advanced_gof/proxy/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/proxy/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/proxy/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/proxy/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/proxy/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/proxy/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/proxy/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/proxy/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/proxy/references/links.md b/modules/07_design_patterns/03_advanced_gof/proxy/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/proxy/references/links.md rename to modules/07_design_patterns/03_advanced_gof/proxy/references/links.md diff --git a/07_design_patterns/03_advanced_gof/proxy/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/proxy/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/proxy/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/proxy/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/state/README.md b/modules/07_design_patterns/03_advanced_gof/state/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/state/README.md rename to modules/07_design_patterns/03_advanced_gof/state/README.md diff --git a/07_design_patterns/03_advanced_gof/state/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/state/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/state/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/state/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/state/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/state/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/state/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/state/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/state/references/links.md b/modules/07_design_patterns/03_advanced_gof/state/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/state/references/links.md rename to modules/07_design_patterns/03_advanced_gof/state/references/links.md diff --git a/07_design_patterns/03_advanced_gof/state/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/state/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/state/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/state/tests/test_basic.py diff --git a/07_design_patterns/03_advanced_gof/visitor/README.md b/modules/07_design_patterns/03_advanced_gof/visitor/README.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/visitor/README.md rename to modules/07_design_patterns/03_advanced_gof/visitor/README.md diff --git a/07_design_patterns/03_advanced_gof/visitor/examples/example_basic.py b/modules/07_design_patterns/03_advanced_gof/visitor/examples/example_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/visitor/examples/example_basic.py rename to modules/07_design_patterns/03_advanced_gof/visitor/examples/example_basic.py diff --git a/07_design_patterns/03_advanced_gof/visitor/exercise/exercise_01.py b/modules/07_design_patterns/03_advanced_gof/visitor/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/visitor/exercise/exercise_01.py rename to modules/07_design_patterns/03_advanced_gof/visitor/exercise/exercise_01.py diff --git a/07_design_patterns/03_advanced_gof/visitor/references/links.md b/modules/07_design_patterns/03_advanced_gof/visitor/references/links.md similarity index 100% rename from 07_design_patterns/03_advanced_gof/visitor/references/links.md rename to modules/07_design_patterns/03_advanced_gof/visitor/references/links.md diff --git a/07_design_patterns/03_advanced_gof/visitor/tests/test_basic.py b/modules/07_design_patterns/03_advanced_gof/visitor/tests/test_basic.py similarity index 100% rename from 07_design_patterns/03_advanced_gof/visitor/tests/test_basic.py rename to modules/07_design_patterns/03_advanced_gof/visitor/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/README.md b/modules/07_design_patterns/04_architectural/README.md similarity index 100% rename from 07_design_patterns/04_architectural/README.md rename to modules/07_design_patterns/04_architectural/README.md diff --git a/07_design_patterns/04_architectural/active_record/README.md b/modules/07_design_patterns/04_architectural/active_record/README.md similarity index 100% rename from 07_design_patterns/04_architectural/active_record/README.md rename to modules/07_design_patterns/04_architectural/active_record/README.md diff --git a/07_design_patterns/04_architectural/active_record/examples/example_basic.py b/modules/07_design_patterns/04_architectural/active_record/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/active_record/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/active_record/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/active_record/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/active_record/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/active_record/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/active_record/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/active_record/references/links.md b/modules/07_design_patterns/04_architectural/active_record/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/active_record/references/links.md rename to modules/07_design_patterns/04_architectural/active_record/references/links.md diff --git a/07_design_patterns/04_architectural/active_record/tests/test_basic.py b/modules/07_design_patterns/04_architectural/active_record/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/active_record/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/active_record/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/api_gateway/README.md b/modules/07_design_patterns/04_architectural/api_gateway/README.md similarity index 100% rename from 07_design_patterns/04_architectural/api_gateway/README.md rename to modules/07_design_patterns/04_architectural/api_gateway/README.md diff --git a/07_design_patterns/04_architectural/api_gateway/examples/example_basic.py b/modules/07_design_patterns/04_architectural/api_gateway/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/api_gateway/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/api_gateway/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/api_gateway/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/api_gateway/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/api_gateway/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/api_gateway/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/api_gateway/references/links.md b/modules/07_design_patterns/04_architectural/api_gateway/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/api_gateway/references/links.md rename to modules/07_design_patterns/04_architectural/api_gateway/references/links.md diff --git a/07_design_patterns/04_architectural/api_gateway/tests/test_basic.py b/modules/07_design_patterns/04_architectural/api_gateway/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/api_gateway/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/api_gateway/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/clean_architecture/README.md b/modules/07_design_patterns/04_architectural/clean_architecture/README.md similarity index 100% rename from 07_design_patterns/04_architectural/clean_architecture/README.md rename to modules/07_design_patterns/04_architectural/clean_architecture/README.md diff --git a/07_design_patterns/04_architectural/clean_architecture/examples/example_basic.py b/modules/07_design_patterns/04_architectural/clean_architecture/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/clean_architecture/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/clean_architecture/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/clean_architecture/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/clean_architecture/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/clean_architecture/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/clean_architecture/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/clean_architecture/references/links.md b/modules/07_design_patterns/04_architectural/clean_architecture/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/clean_architecture/references/links.md rename to modules/07_design_patterns/04_architectural/clean_architecture/references/links.md diff --git a/07_design_patterns/04_architectural/clean_architecture/tests/test_basic.py b/modules/07_design_patterns/04_architectural/clean_architecture/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/clean_architecture/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/clean_architecture/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/data_mapper/README.md b/modules/07_design_patterns/04_architectural/data_mapper/README.md similarity index 100% rename from 07_design_patterns/04_architectural/data_mapper/README.md rename to modules/07_design_patterns/04_architectural/data_mapper/README.md diff --git a/07_design_patterns/04_architectural/data_mapper/examples/example_basic.py b/modules/07_design_patterns/04_architectural/data_mapper/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/data_mapper/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/data_mapper/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/data_mapper/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/data_mapper/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/data_mapper/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/data_mapper/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/data_mapper/references/links.md b/modules/07_design_patterns/04_architectural/data_mapper/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/data_mapper/references/links.md rename to modules/07_design_patterns/04_architectural/data_mapper/references/links.md diff --git a/07_design_patterns/04_architectural/data_mapper/tests/test_basic.py b/modules/07_design_patterns/04_architectural/data_mapper/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/data_mapper/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/data_mapper/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/dependency_injection/README.md b/modules/07_design_patterns/04_architectural/dependency_injection/README.md similarity index 100% rename from 07_design_patterns/04_architectural/dependency_injection/README.md rename to modules/07_design_patterns/04_architectural/dependency_injection/README.md diff --git a/07_design_patterns/04_architectural/dependency_injection/examples/example_basic.py b/modules/07_design_patterns/04_architectural/dependency_injection/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/dependency_injection/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/dependency_injection/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/dependency_injection/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/dependency_injection/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/dependency_injection/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/dependency_injection/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/dependency_injection/references/links.md b/modules/07_design_patterns/04_architectural/dependency_injection/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/dependency_injection/references/links.md rename to modules/07_design_patterns/04_architectural/dependency_injection/references/links.md diff --git a/07_design_patterns/04_architectural/dependency_injection/tests/test_basic.py b/modules/07_design_patterns/04_architectural/dependency_injection/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/dependency_injection/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/dependency_injection/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/domain_model/README.md b/modules/07_design_patterns/04_architectural/domain_model/README.md similarity index 100% rename from 07_design_patterns/04_architectural/domain_model/README.md rename to modules/07_design_patterns/04_architectural/domain_model/README.md diff --git a/07_design_patterns/04_architectural/domain_model/examples/example_basic.py b/modules/07_design_patterns/04_architectural/domain_model/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/domain_model/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/domain_model/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/domain_model/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/domain_model/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/domain_model/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/domain_model/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/domain_model/references/links.md b/modules/07_design_patterns/04_architectural/domain_model/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/domain_model/references/links.md rename to modules/07_design_patterns/04_architectural/domain_model/references/links.md diff --git a/07_design_patterns/04_architectural/domain_model/tests/test_basic.py b/modules/07_design_patterns/04_architectural/domain_model/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/domain_model/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/domain_model/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/hexagonal_architecture/README.md b/modules/07_design_patterns/04_architectural/hexagonal_architecture/README.md similarity index 100% rename from 07_design_patterns/04_architectural/hexagonal_architecture/README.md rename to modules/07_design_patterns/04_architectural/hexagonal_architecture/README.md diff --git a/07_design_patterns/04_architectural/hexagonal_architecture/examples/example_basic.py b/modules/07_design_patterns/04_architectural/hexagonal_architecture/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/hexagonal_architecture/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/hexagonal_architecture/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/hexagonal_architecture/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/hexagonal_architecture/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/hexagonal_architecture/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/hexagonal_architecture/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/hexagonal_architecture/references/links.md b/modules/07_design_patterns/04_architectural/hexagonal_architecture/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/hexagonal_architecture/references/links.md rename to modules/07_design_patterns/04_architectural/hexagonal_architecture/references/links.md diff --git a/07_design_patterns/04_architectural/hexagonal_architecture/tests/test_basic.py b/modules/07_design_patterns/04_architectural/hexagonal_architecture/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/hexagonal_architecture/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/hexagonal_architecture/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/mvc/README.md b/modules/07_design_patterns/04_architectural/mvc/README.md similarity index 100% rename from 07_design_patterns/04_architectural/mvc/README.md rename to modules/07_design_patterns/04_architectural/mvc/README.md diff --git a/07_design_patterns/04_architectural/mvc/examples/example_basic.py b/modules/07_design_patterns/04_architectural/mvc/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvc/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/mvc/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/mvc/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/mvc/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/mvc/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/mvc/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/mvc/references/links.md b/modules/07_design_patterns/04_architectural/mvc/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/mvc/references/links.md rename to modules/07_design_patterns/04_architectural/mvc/references/links.md diff --git a/07_design_patterns/04_architectural/mvc/tests/test_basic.py b/modules/07_design_patterns/04_architectural/mvc/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvc/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/mvc/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/mvp/README.md b/modules/07_design_patterns/04_architectural/mvp/README.md similarity index 100% rename from 07_design_patterns/04_architectural/mvp/README.md rename to modules/07_design_patterns/04_architectural/mvp/README.md diff --git a/07_design_patterns/04_architectural/mvp/examples/example_basic.py b/modules/07_design_patterns/04_architectural/mvp/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvp/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/mvp/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/mvp/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/mvp/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/mvp/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/mvp/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/mvp/references/links.md b/modules/07_design_patterns/04_architectural/mvp/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/mvp/references/links.md rename to modules/07_design_patterns/04_architectural/mvp/references/links.md diff --git a/07_design_patterns/04_architectural/mvp/tests/test_basic.py b/modules/07_design_patterns/04_architectural/mvp/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvp/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/mvp/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/mvvm/README.md b/modules/07_design_patterns/04_architectural/mvvm/README.md similarity index 100% rename from 07_design_patterns/04_architectural/mvvm/README.md rename to modules/07_design_patterns/04_architectural/mvvm/README.md diff --git a/07_design_patterns/04_architectural/mvvm/examples/example_basic.py b/modules/07_design_patterns/04_architectural/mvvm/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvvm/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/mvvm/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/mvvm/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/mvvm/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/mvvm/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/mvvm/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/mvvm/references/links.md b/modules/07_design_patterns/04_architectural/mvvm/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/mvvm/references/links.md rename to modules/07_design_patterns/04_architectural/mvvm/references/links.md diff --git a/07_design_patterns/04_architectural/mvvm/tests/test_basic.py b/modules/07_design_patterns/04_architectural/mvvm/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/mvvm/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/mvvm/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/repository/README.md b/modules/07_design_patterns/04_architectural/repository/README.md similarity index 100% rename from 07_design_patterns/04_architectural/repository/README.md rename to modules/07_design_patterns/04_architectural/repository/README.md diff --git a/07_design_patterns/04_architectural/repository/examples/example_basic.py b/modules/07_design_patterns/04_architectural/repository/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/repository/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/repository/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/repository/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/repository/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/repository/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/repository/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/repository/references/links.md b/modules/07_design_patterns/04_architectural/repository/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/repository/references/links.md rename to modules/07_design_patterns/04_architectural/repository/references/links.md diff --git a/07_design_patterns/04_architectural/repository/tests/test_basic.py b/modules/07_design_patterns/04_architectural/repository/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/repository/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/repository/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/service_layer/README.md b/modules/07_design_patterns/04_architectural/service_layer/README.md similarity index 100% rename from 07_design_patterns/04_architectural/service_layer/README.md rename to modules/07_design_patterns/04_architectural/service_layer/README.md diff --git a/07_design_patterns/04_architectural/service_layer/examples/example_basic.py b/modules/07_design_patterns/04_architectural/service_layer/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/service_layer/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/service_layer/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/service_layer/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/service_layer/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/service_layer/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/service_layer/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/service_layer/references/links.md b/modules/07_design_patterns/04_architectural/service_layer/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/service_layer/references/links.md rename to modules/07_design_patterns/04_architectural/service_layer/references/links.md diff --git a/07_design_patterns/04_architectural/service_layer/tests/test_basic.py b/modules/07_design_patterns/04_architectural/service_layer/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/service_layer/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/service_layer/tests/test_basic.py diff --git a/07_design_patterns/04_architectural/unit_of_work/README.md b/modules/07_design_patterns/04_architectural/unit_of_work/README.md similarity index 100% rename from 07_design_patterns/04_architectural/unit_of_work/README.md rename to modules/07_design_patterns/04_architectural/unit_of_work/README.md diff --git a/07_design_patterns/04_architectural/unit_of_work/examples/example_basic.py b/modules/07_design_patterns/04_architectural/unit_of_work/examples/example_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/unit_of_work/examples/example_basic.py rename to modules/07_design_patterns/04_architectural/unit_of_work/examples/example_basic.py diff --git a/07_design_patterns/04_architectural/unit_of_work/exercise/exercise_01.py b/modules/07_design_patterns/04_architectural/unit_of_work/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/04_architectural/unit_of_work/exercise/exercise_01.py rename to modules/07_design_patterns/04_architectural/unit_of_work/exercise/exercise_01.py diff --git a/07_design_patterns/04_architectural/unit_of_work/references/links.md b/modules/07_design_patterns/04_architectural/unit_of_work/references/links.md similarity index 100% rename from 07_design_patterns/04_architectural/unit_of_work/references/links.md rename to modules/07_design_patterns/04_architectural/unit_of_work/references/links.md diff --git a/07_design_patterns/04_architectural/unit_of_work/tests/test_basic.py b/modules/07_design_patterns/04_architectural/unit_of_work/tests/test_basic.py similarity index 100% rename from 07_design_patterns/04_architectural/unit_of_work/tests/test_basic.py rename to modules/07_design_patterns/04_architectural/unit_of_work/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/README.md b/modules/07_design_patterns/05_distributed_systems/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/README.md rename to modules/07_design_patterns/05_distributed_systems/README.md diff --git a/07_design_patterns/05_distributed_systems/backend_for_frontend/README.md b/modules/07_design_patterns/05_distributed_systems/backend_for_frontend/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/backend_for_frontend/README.md rename to modules/07_design_patterns/05_distributed_systems/backend_for_frontend/README.md diff --git a/07_design_patterns/05_distributed_systems/backend_for_frontend/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/backend_for_frontend/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/backend_for_frontend/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/backend_for_frontend/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/backend_for_frontend/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/backend_for_frontend/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/backend_for_frontend/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/backend_for_frontend/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/backend_for_frontend/references/links.md b/modules/07_design_patterns/05_distributed_systems/backend_for_frontend/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/backend_for_frontend/references/links.md rename to modules/07_design_patterns/05_distributed_systems/backend_for_frontend/references/links.md diff --git a/07_design_patterns/05_distributed_systems/backend_for_frontend/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/backend_for_frontend/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/backend_for_frontend/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/backend_for_frontend/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/bulkhead/README.md b/modules/07_design_patterns/05_distributed_systems/bulkhead/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/bulkhead/README.md rename to modules/07_design_patterns/05_distributed_systems/bulkhead/README.md diff --git a/07_design_patterns/05_distributed_systems/bulkhead/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/bulkhead/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/bulkhead/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/bulkhead/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/bulkhead/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/bulkhead/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/bulkhead/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/bulkhead/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/bulkhead/references/links.md b/modules/07_design_patterns/05_distributed_systems/bulkhead/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/bulkhead/references/links.md rename to modules/07_design_patterns/05_distributed_systems/bulkhead/references/links.md diff --git a/07_design_patterns/05_distributed_systems/bulkhead/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/bulkhead/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/bulkhead/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/bulkhead/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/cache_aside/README.md b/modules/07_design_patterns/05_distributed_systems/cache_aside/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/cache_aside/README.md rename to modules/07_design_patterns/05_distributed_systems/cache_aside/README.md diff --git a/07_design_patterns/05_distributed_systems/cache_aside/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/cache_aside/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cache_aside/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/cache_aside/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/cache_aside/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/cache_aside/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cache_aside/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/cache_aside/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/cache_aside/references/links.md b/modules/07_design_patterns/05_distributed_systems/cache_aside/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/cache_aside/references/links.md rename to modules/07_design_patterns/05_distributed_systems/cache_aside/references/links.md diff --git a/07_design_patterns/05_distributed_systems/cache_aside/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/cache_aside/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cache_aside/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/cache_aside/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/circuit_breaker/README.md b/modules/07_design_patterns/05_distributed_systems/circuit_breaker/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/circuit_breaker/README.md rename to modules/07_design_patterns/05_distributed_systems/circuit_breaker/README.md diff --git a/07_design_patterns/05_distributed_systems/circuit_breaker/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/circuit_breaker/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/circuit_breaker/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/circuit_breaker/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/circuit_breaker/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/circuit_breaker/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/circuit_breaker/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/circuit_breaker/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/circuit_breaker/references/links.md b/modules/07_design_patterns/05_distributed_systems/circuit_breaker/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/circuit_breaker/references/links.md rename to modules/07_design_patterns/05_distributed_systems/circuit_breaker/references/links.md diff --git a/07_design_patterns/05_distributed_systems/circuit_breaker/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/circuit_breaker/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/circuit_breaker/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/circuit_breaker/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/cqrs/README.md b/modules/07_design_patterns/05_distributed_systems/cqrs/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/cqrs/README.md rename to modules/07_design_patterns/05_distributed_systems/cqrs/README.md diff --git a/07_design_patterns/05_distributed_systems/cqrs/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/cqrs/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cqrs/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/cqrs/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/cqrs/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/cqrs/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cqrs/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/cqrs/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/cqrs/references/links.md b/modules/07_design_patterns/05_distributed_systems/cqrs/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/cqrs/references/links.md rename to modules/07_design_patterns/05_distributed_systems/cqrs/references/links.md diff --git a/07_design_patterns/05_distributed_systems/cqrs/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/cqrs/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/cqrs/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/cqrs/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/event_driven/README.md b/modules/07_design_patterns/05_distributed_systems/event_driven/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_driven/README.md rename to modules/07_design_patterns/05_distributed_systems/event_driven/README.md diff --git a/07_design_patterns/05_distributed_systems/event_driven/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/event_driven/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_driven/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/event_driven/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/event_driven/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/event_driven/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_driven/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/event_driven/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/event_driven/references/links.md b/modules/07_design_patterns/05_distributed_systems/event_driven/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_driven/references/links.md rename to modules/07_design_patterns/05_distributed_systems/event_driven/references/links.md diff --git a/07_design_patterns/05_distributed_systems/event_driven/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/event_driven/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_driven/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/event_driven/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/event_sourcing/README.md b/modules/07_design_patterns/05_distributed_systems/event_sourcing/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_sourcing/README.md rename to modules/07_design_patterns/05_distributed_systems/event_sourcing/README.md diff --git a/07_design_patterns/05_distributed_systems/event_sourcing/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/event_sourcing/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_sourcing/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/event_sourcing/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/event_sourcing/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/event_sourcing/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_sourcing/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/event_sourcing/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/event_sourcing/references/links.md b/modules/07_design_patterns/05_distributed_systems/event_sourcing/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_sourcing/references/links.md rename to modules/07_design_patterns/05_distributed_systems/event_sourcing/references/links.md diff --git a/07_design_patterns/05_distributed_systems/event_sourcing/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/event_sourcing/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/event_sourcing/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/event_sourcing/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/rate_limiter/README.md b/modules/07_design_patterns/05_distributed_systems/rate_limiter/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/rate_limiter/README.md rename to modules/07_design_patterns/05_distributed_systems/rate_limiter/README.md diff --git a/07_design_patterns/05_distributed_systems/rate_limiter/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/rate_limiter/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/rate_limiter/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/rate_limiter/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/rate_limiter/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/rate_limiter/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/rate_limiter/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/rate_limiter/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/rate_limiter/references/links.md b/modules/07_design_patterns/05_distributed_systems/rate_limiter/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/rate_limiter/references/links.md rename to modules/07_design_patterns/05_distributed_systems/rate_limiter/references/links.md diff --git a/07_design_patterns/05_distributed_systems/rate_limiter/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/rate_limiter/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/rate_limiter/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/rate_limiter/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/retry_pattern/README.md b/modules/07_design_patterns/05_distributed_systems/retry_pattern/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/retry_pattern/README.md rename to modules/07_design_patterns/05_distributed_systems/retry_pattern/README.md diff --git a/07_design_patterns/05_distributed_systems/retry_pattern/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/retry_pattern/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/retry_pattern/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/retry_pattern/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/retry_pattern/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/retry_pattern/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/retry_pattern/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/retry_pattern/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/retry_pattern/references/links.md b/modules/07_design_patterns/05_distributed_systems/retry_pattern/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/retry_pattern/references/links.md rename to modules/07_design_patterns/05_distributed_systems/retry_pattern/references/links.md diff --git a/07_design_patterns/05_distributed_systems/retry_pattern/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/retry_pattern/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/retry_pattern/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/retry_pattern/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/saga/README.md b/modules/07_design_patterns/05_distributed_systems/saga/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/saga/README.md rename to modules/07_design_patterns/05_distributed_systems/saga/README.md diff --git a/07_design_patterns/05_distributed_systems/saga/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/saga/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/saga/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/saga/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/saga/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/saga/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/saga/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/saga/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/saga/references/links.md b/modules/07_design_patterns/05_distributed_systems/saga/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/saga/references/links.md rename to modules/07_design_patterns/05_distributed_systems/saga/references/links.md diff --git a/07_design_patterns/05_distributed_systems/saga/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/saga/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/saga/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/saga/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/sidecar/README.md b/modules/07_design_patterns/05_distributed_systems/sidecar/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/sidecar/README.md rename to modules/07_design_patterns/05_distributed_systems/sidecar/README.md diff --git a/07_design_patterns/05_distributed_systems/sidecar/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/sidecar/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/sidecar/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/sidecar/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/sidecar/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/sidecar/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/sidecar/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/sidecar/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/sidecar/references/links.md b/modules/07_design_patterns/05_distributed_systems/sidecar/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/sidecar/references/links.md rename to modules/07_design_patterns/05_distributed_systems/sidecar/references/links.md diff --git a/07_design_patterns/05_distributed_systems/sidecar/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/sidecar/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/sidecar/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/sidecar/tests/test_basic.py diff --git a/07_design_patterns/05_distributed_systems/timeout/README.md b/modules/07_design_patterns/05_distributed_systems/timeout/README.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/timeout/README.md rename to modules/07_design_patterns/05_distributed_systems/timeout/README.md diff --git a/07_design_patterns/05_distributed_systems/timeout/examples/example_basic.py b/modules/07_design_patterns/05_distributed_systems/timeout/examples/example_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/timeout/examples/example_basic.py rename to modules/07_design_patterns/05_distributed_systems/timeout/examples/example_basic.py diff --git a/07_design_patterns/05_distributed_systems/timeout/exercise/exercise_01.py b/modules/07_design_patterns/05_distributed_systems/timeout/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/timeout/exercise/exercise_01.py rename to modules/07_design_patterns/05_distributed_systems/timeout/exercise/exercise_01.py diff --git a/07_design_patterns/05_distributed_systems/timeout/references/links.md b/modules/07_design_patterns/05_distributed_systems/timeout/references/links.md similarity index 100% rename from 07_design_patterns/05_distributed_systems/timeout/references/links.md rename to modules/07_design_patterns/05_distributed_systems/timeout/references/links.md diff --git a/07_design_patterns/05_distributed_systems/timeout/tests/test_basic.py b/modules/07_design_patterns/05_distributed_systems/timeout/tests/test_basic.py similarity index 100% rename from 07_design_patterns/05_distributed_systems/timeout/tests/test_basic.py rename to modules/07_design_patterns/05_distributed_systems/timeout/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/README.md b/modules/07_design_patterns/06_concurrency/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/README.md rename to modules/07_design_patterns/06_concurrency/README.md diff --git a/07_design_patterns/06_concurrency/active_object/README.md b/modules/07_design_patterns/06_concurrency/active_object/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/active_object/README.md rename to modules/07_design_patterns/06_concurrency/active_object/README.md diff --git a/07_design_patterns/06_concurrency/active_object/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/active_object/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/active_object/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/active_object/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/active_object/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/active_object/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/active_object/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/active_object/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/active_object/references/links.md b/modules/07_design_patterns/06_concurrency/active_object/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/active_object/references/links.md rename to modules/07_design_patterns/06_concurrency/active_object/references/links.md diff --git a/07_design_patterns/06_concurrency/active_object/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/active_object/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/active_object/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/active_object/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/barrier_pattern/README.md b/modules/07_design_patterns/06_concurrency/barrier_pattern/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/barrier_pattern/README.md rename to modules/07_design_patterns/06_concurrency/barrier_pattern/README.md diff --git a/07_design_patterns/06_concurrency/barrier_pattern/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/barrier_pattern/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/barrier_pattern/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/barrier_pattern/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/barrier_pattern/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/barrier_pattern/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/barrier_pattern/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/barrier_pattern/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/barrier_pattern/references/links.md b/modules/07_design_patterns/06_concurrency/barrier_pattern/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/barrier_pattern/references/links.md rename to modules/07_design_patterns/06_concurrency/barrier_pattern/references/links.md diff --git a/07_design_patterns/06_concurrency/barrier_pattern/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/barrier_pattern/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/barrier_pattern/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/barrier_pattern/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/double_checked_locking/README.md b/modules/07_design_patterns/06_concurrency/double_checked_locking/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/double_checked_locking/README.md rename to modules/07_design_patterns/06_concurrency/double_checked_locking/README.md diff --git a/07_design_patterns/06_concurrency/double_checked_locking/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/double_checked_locking/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/double_checked_locking/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/double_checked_locking/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/double_checked_locking/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/double_checked_locking/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/double_checked_locking/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/double_checked_locking/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/double_checked_locking/references/links.md b/modules/07_design_patterns/06_concurrency/double_checked_locking/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/double_checked_locking/references/links.md rename to modules/07_design_patterns/06_concurrency/double_checked_locking/references/links.md diff --git a/07_design_patterns/06_concurrency/double_checked_locking/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/double_checked_locking/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/double_checked_locking/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/double_checked_locking/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/future_promise/README.md b/modules/07_design_patterns/06_concurrency/future_promise/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/future_promise/README.md rename to modules/07_design_patterns/06_concurrency/future_promise/README.md diff --git a/07_design_patterns/06_concurrency/future_promise/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/future_promise/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/future_promise/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/future_promise/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/future_promise/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/future_promise/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/future_promise/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/future_promise/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/future_promise/references/links.md b/modules/07_design_patterns/06_concurrency/future_promise/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/future_promise/references/links.md rename to modules/07_design_patterns/06_concurrency/future_promise/references/links.md diff --git a/07_design_patterns/06_concurrency/future_promise/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/future_promise/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/future_promise/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/future_promise/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/half_sync_half_async/README.md b/modules/07_design_patterns/06_concurrency/half_sync_half_async/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/half_sync_half_async/README.md rename to modules/07_design_patterns/06_concurrency/half_sync_half_async/README.md diff --git a/07_design_patterns/06_concurrency/half_sync_half_async/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/half_sync_half_async/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/half_sync_half_async/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/half_sync_half_async/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/half_sync_half_async/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/half_sync_half_async/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/half_sync_half_async/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/half_sync_half_async/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/half_sync_half_async/references/links.md b/modules/07_design_patterns/06_concurrency/half_sync_half_async/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/half_sync_half_async/references/links.md rename to modules/07_design_patterns/06_concurrency/half_sync_half_async/references/links.md diff --git a/07_design_patterns/06_concurrency/half_sync_half_async/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/half_sync_half_async/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/half_sync_half_async/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/half_sync_half_async/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/leader_followers/README.md b/modules/07_design_patterns/06_concurrency/leader_followers/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/leader_followers/README.md rename to modules/07_design_patterns/06_concurrency/leader_followers/README.md diff --git a/07_design_patterns/06_concurrency/leader_followers/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/leader_followers/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/leader_followers/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/leader_followers/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/leader_followers/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/leader_followers/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/leader_followers/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/leader_followers/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/leader_followers/references/links.md b/modules/07_design_patterns/06_concurrency/leader_followers/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/leader_followers/references/links.md rename to modules/07_design_patterns/06_concurrency/leader_followers/references/links.md diff --git a/07_design_patterns/06_concurrency/leader_followers/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/leader_followers/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/leader_followers/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/leader_followers/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/monitor_object/README.md b/modules/07_design_patterns/06_concurrency/monitor_object/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/monitor_object/README.md rename to modules/07_design_patterns/06_concurrency/monitor_object/README.md diff --git a/07_design_patterns/06_concurrency/monitor_object/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/monitor_object/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/monitor_object/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/monitor_object/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/monitor_object/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/monitor_object/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/monitor_object/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/monitor_object/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/monitor_object/references/links.md b/modules/07_design_patterns/06_concurrency/monitor_object/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/monitor_object/references/links.md rename to modules/07_design_patterns/06_concurrency/monitor_object/references/links.md diff --git a/07_design_patterns/06_concurrency/monitor_object/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/monitor_object/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/monitor_object/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/monitor_object/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/proactor/README.md b/modules/07_design_patterns/06_concurrency/proactor/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/proactor/README.md rename to modules/07_design_patterns/06_concurrency/proactor/README.md diff --git a/07_design_patterns/06_concurrency/proactor/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/proactor/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/proactor/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/proactor/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/proactor/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/proactor/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/proactor/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/proactor/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/proactor/references/links.md b/modules/07_design_patterns/06_concurrency/proactor/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/proactor/references/links.md rename to modules/07_design_patterns/06_concurrency/proactor/references/links.md diff --git a/07_design_patterns/06_concurrency/proactor/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/proactor/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/proactor/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/proactor/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/producer_consumer/README.md b/modules/07_design_patterns/06_concurrency/producer_consumer/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/producer_consumer/README.md rename to modules/07_design_patterns/06_concurrency/producer_consumer/README.md diff --git a/07_design_patterns/06_concurrency/producer_consumer/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/producer_consumer/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/producer_consumer/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/producer_consumer/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/producer_consumer/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/producer_consumer/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/producer_consumer/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/producer_consumer/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/producer_consumer/references/links.md b/modules/07_design_patterns/06_concurrency/producer_consumer/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/producer_consumer/references/links.md rename to modules/07_design_patterns/06_concurrency/producer_consumer/references/links.md diff --git a/07_design_patterns/06_concurrency/producer_consumer/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/producer_consumer/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/producer_consumer/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/producer_consumer/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/reactor/README.md b/modules/07_design_patterns/06_concurrency/reactor/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/reactor/README.md rename to modules/07_design_patterns/06_concurrency/reactor/README.md diff --git a/07_design_patterns/06_concurrency/reactor/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/reactor/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/reactor/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/reactor/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/reactor/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/reactor/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/reactor/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/reactor/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/reactor/references/links.md b/modules/07_design_patterns/06_concurrency/reactor/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/reactor/references/links.md rename to modules/07_design_patterns/06_concurrency/reactor/references/links.md diff --git a/07_design_patterns/06_concurrency/reactor/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/reactor/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/reactor/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/reactor/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/read_write_lock/README.md b/modules/07_design_patterns/06_concurrency/read_write_lock/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/read_write_lock/README.md rename to modules/07_design_patterns/06_concurrency/read_write_lock/README.md diff --git a/07_design_patterns/06_concurrency/read_write_lock/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/read_write_lock/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/read_write_lock/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/read_write_lock/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/read_write_lock/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/read_write_lock/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/read_write_lock/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/read_write_lock/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/read_write_lock/references/links.md b/modules/07_design_patterns/06_concurrency/read_write_lock/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/read_write_lock/references/links.md rename to modules/07_design_patterns/06_concurrency/read_write_lock/references/links.md diff --git a/07_design_patterns/06_concurrency/read_write_lock/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/read_write_lock/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/read_write_lock/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/read_write_lock/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/scheduler/README.md b/modules/07_design_patterns/06_concurrency/scheduler/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/scheduler/README.md rename to modules/07_design_patterns/06_concurrency/scheduler/README.md diff --git a/07_design_patterns/06_concurrency/scheduler/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/scheduler/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/scheduler/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/scheduler/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/scheduler/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/scheduler/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/scheduler/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/scheduler/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/scheduler/references/links.md b/modules/07_design_patterns/06_concurrency/scheduler/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/scheduler/references/links.md rename to modules/07_design_patterns/06_concurrency/scheduler/references/links.md diff --git a/07_design_patterns/06_concurrency/scheduler/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/scheduler/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/scheduler/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/scheduler/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/thread_pool/README.md b/modules/07_design_patterns/06_concurrency/thread_pool/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/thread_pool/README.md rename to modules/07_design_patterns/06_concurrency/thread_pool/README.md diff --git a/07_design_patterns/06_concurrency/thread_pool/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/thread_pool/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_pool/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/thread_pool/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/thread_pool/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/thread_pool/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_pool/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/thread_pool/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/thread_pool/references/links.md b/modules/07_design_patterns/06_concurrency/thread_pool/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/thread_pool/references/links.md rename to modules/07_design_patterns/06_concurrency/thread_pool/references/links.md diff --git a/07_design_patterns/06_concurrency/thread_pool/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/thread_pool/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_pool/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/thread_pool/tests/test_basic.py diff --git a/07_design_patterns/06_concurrency/thread_specific_storage/README.md b/modules/07_design_patterns/06_concurrency/thread_specific_storage/README.md similarity index 100% rename from 07_design_patterns/06_concurrency/thread_specific_storage/README.md rename to modules/07_design_patterns/06_concurrency/thread_specific_storage/README.md diff --git a/07_design_patterns/06_concurrency/thread_specific_storage/examples/example_basic.py b/modules/07_design_patterns/06_concurrency/thread_specific_storage/examples/example_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_specific_storage/examples/example_basic.py rename to modules/07_design_patterns/06_concurrency/thread_specific_storage/examples/example_basic.py diff --git a/07_design_patterns/06_concurrency/thread_specific_storage/exercise/exercise_01.py b/modules/07_design_patterns/06_concurrency/thread_specific_storage/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_specific_storage/exercise/exercise_01.py rename to modules/07_design_patterns/06_concurrency/thread_specific_storage/exercise/exercise_01.py diff --git a/07_design_patterns/06_concurrency/thread_specific_storage/references/links.md b/modules/07_design_patterns/06_concurrency/thread_specific_storage/references/links.md similarity index 100% rename from 07_design_patterns/06_concurrency/thread_specific_storage/references/links.md rename to modules/07_design_patterns/06_concurrency/thread_specific_storage/references/links.md diff --git a/07_design_patterns/06_concurrency/thread_specific_storage/tests/test_basic.py b/modules/07_design_patterns/06_concurrency/thread_specific_storage/tests/test_basic.py similarity index 100% rename from 07_design_patterns/06_concurrency/thread_specific_storage/tests/test_basic.py rename to modules/07_design_patterns/06_concurrency/thread_specific_storage/tests/test_basic.py diff --git a/07_design_patterns/07_messaging/README.md b/modules/07_design_patterns/07_messaging/README.md similarity index 100% rename from 07_design_patterns/07_messaging/README.md rename to modules/07_design_patterns/07_messaging/README.md diff --git a/07_design_patterns/07_messaging/event_bus/README.md b/modules/07_design_patterns/07_messaging/event_bus/README.md similarity index 100% rename from 07_design_patterns/07_messaging/event_bus/README.md rename to modules/07_design_patterns/07_messaging/event_bus/README.md diff --git a/07_design_patterns/07_messaging/event_bus/examples/example_basic.py b/modules/07_design_patterns/07_messaging/event_bus/examples/example_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/event_bus/examples/example_basic.py rename to modules/07_design_patterns/07_messaging/event_bus/examples/example_basic.py diff --git a/07_design_patterns/07_messaging/event_bus/exercise/exercise_01.py b/modules/07_design_patterns/07_messaging/event_bus/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/07_messaging/event_bus/exercise/exercise_01.py rename to modules/07_design_patterns/07_messaging/event_bus/exercise/exercise_01.py diff --git a/07_design_patterns/07_messaging/event_bus/references/links.md b/modules/07_design_patterns/07_messaging/event_bus/references/links.md similarity index 100% rename from 07_design_patterns/07_messaging/event_bus/references/links.md rename to modules/07_design_patterns/07_messaging/event_bus/references/links.md diff --git a/07_design_patterns/07_messaging/event_bus/tests/test_basic.py b/modules/07_design_patterns/07_messaging/event_bus/tests/test_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/event_bus/tests/test_basic.py rename to modules/07_design_patterns/07_messaging/event_bus/tests/test_basic.py diff --git a/07_design_patterns/07_messaging/message_queue/README.md b/modules/07_design_patterns/07_messaging/message_queue/README.md similarity index 100% rename from 07_design_patterns/07_messaging/message_queue/README.md rename to modules/07_design_patterns/07_messaging/message_queue/README.md diff --git a/07_design_patterns/07_messaging/message_queue/examples/example_basic.py b/modules/07_design_patterns/07_messaging/message_queue/examples/example_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/message_queue/examples/example_basic.py rename to modules/07_design_patterns/07_messaging/message_queue/examples/example_basic.py diff --git a/07_design_patterns/07_messaging/message_queue/exercise/exercise_01.py b/modules/07_design_patterns/07_messaging/message_queue/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/07_messaging/message_queue/exercise/exercise_01.py rename to modules/07_design_patterns/07_messaging/message_queue/exercise/exercise_01.py diff --git a/07_design_patterns/07_messaging/message_queue/references/links.md b/modules/07_design_patterns/07_messaging/message_queue/references/links.md similarity index 100% rename from 07_design_patterns/07_messaging/message_queue/references/links.md rename to modules/07_design_patterns/07_messaging/message_queue/references/links.md diff --git a/07_design_patterns/07_messaging/message_queue/tests/test_basic.py b/modules/07_design_patterns/07_messaging/message_queue/tests/test_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/message_queue/tests/test_basic.py rename to modules/07_design_patterns/07_messaging/message_queue/tests/test_basic.py diff --git a/07_design_patterns/07_messaging/publish_subscribe/README.md b/modules/07_design_patterns/07_messaging/publish_subscribe/README.md similarity index 100% rename from 07_design_patterns/07_messaging/publish_subscribe/README.md rename to modules/07_design_patterns/07_messaging/publish_subscribe/README.md diff --git a/07_design_patterns/07_messaging/publish_subscribe/examples/example_basic.py b/modules/07_design_patterns/07_messaging/publish_subscribe/examples/example_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/publish_subscribe/examples/example_basic.py rename to modules/07_design_patterns/07_messaging/publish_subscribe/examples/example_basic.py diff --git a/07_design_patterns/07_messaging/publish_subscribe/exercise/exercise_01.py b/modules/07_design_patterns/07_messaging/publish_subscribe/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/07_messaging/publish_subscribe/exercise/exercise_01.py rename to modules/07_design_patterns/07_messaging/publish_subscribe/exercise/exercise_01.py diff --git a/07_design_patterns/07_messaging/publish_subscribe/references/links.md b/modules/07_design_patterns/07_messaging/publish_subscribe/references/links.md similarity index 100% rename from 07_design_patterns/07_messaging/publish_subscribe/references/links.md rename to modules/07_design_patterns/07_messaging/publish_subscribe/references/links.md diff --git a/07_design_patterns/07_messaging/publish_subscribe/tests/test_basic.py b/modules/07_design_patterns/07_messaging/publish_subscribe/tests/test_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/publish_subscribe/tests/test_basic.py rename to modules/07_design_patterns/07_messaging/publish_subscribe/tests/test_basic.py diff --git a/07_design_patterns/07_messaging/request_reply/README.md b/modules/07_design_patterns/07_messaging/request_reply/README.md similarity index 100% rename from 07_design_patterns/07_messaging/request_reply/README.md rename to modules/07_design_patterns/07_messaging/request_reply/README.md diff --git a/07_design_patterns/07_messaging/request_reply/examples/example_basic.py b/modules/07_design_patterns/07_messaging/request_reply/examples/example_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/request_reply/examples/example_basic.py rename to modules/07_design_patterns/07_messaging/request_reply/examples/example_basic.py diff --git a/07_design_patterns/07_messaging/request_reply/exercise/exercise_01.py b/modules/07_design_patterns/07_messaging/request_reply/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/07_messaging/request_reply/exercise/exercise_01.py rename to modules/07_design_patterns/07_messaging/request_reply/exercise/exercise_01.py diff --git a/07_design_patterns/07_messaging/request_reply/references/links.md b/modules/07_design_patterns/07_messaging/request_reply/references/links.md similarity index 100% rename from 07_design_patterns/07_messaging/request_reply/references/links.md rename to modules/07_design_patterns/07_messaging/request_reply/references/links.md diff --git a/07_design_patterns/07_messaging/request_reply/tests/test_basic.py b/modules/07_design_patterns/07_messaging/request_reply/tests/test_basic.py similarity index 100% rename from 07_design_patterns/07_messaging/request_reply/tests/test_basic.py rename to modules/07_design_patterns/07_messaging/request_reply/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/README.md b/modules/07_design_patterns/08_object_management/README.md similarity index 100% rename from 07_design_patterns/08_object_management/README.md rename to modules/07_design_patterns/08_object_management/README.md diff --git a/07_design_patterns/08_object_management/aggregate/README.md b/modules/07_design_patterns/08_object_management/aggregate/README.md similarity index 100% rename from 07_design_patterns/08_object_management/aggregate/README.md rename to modules/07_design_patterns/08_object_management/aggregate/README.md diff --git a/07_design_patterns/08_object_management/aggregate/examples/example_basic.py b/modules/07_design_patterns/08_object_management/aggregate/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/aggregate/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/aggregate/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/aggregate/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/aggregate/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/aggregate/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/aggregate/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/aggregate/references/links.md b/modules/07_design_patterns/08_object_management/aggregate/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/aggregate/references/links.md rename to modules/07_design_patterns/08_object_management/aggregate/references/links.md diff --git a/07_design_patterns/08_object_management/aggregate/tests/test_basic.py b/modules/07_design_patterns/08_object_management/aggregate/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/aggregate/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/aggregate/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/eager_initialization/README.md b/modules/07_design_patterns/08_object_management/eager_initialization/README.md similarity index 100% rename from 07_design_patterns/08_object_management/eager_initialization/README.md rename to modules/07_design_patterns/08_object_management/eager_initialization/README.md diff --git a/07_design_patterns/08_object_management/eager_initialization/examples/example_basic.py b/modules/07_design_patterns/08_object_management/eager_initialization/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/eager_initialization/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/eager_initialization/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/eager_initialization/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/eager_initialization/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/eager_initialization/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/eager_initialization/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/eager_initialization/references/links.md b/modules/07_design_patterns/08_object_management/eager_initialization/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/eager_initialization/references/links.md rename to modules/07_design_patterns/08_object_management/eager_initialization/references/links.md diff --git a/07_design_patterns/08_object_management/eager_initialization/tests/test_basic.py b/modules/07_design_patterns/08_object_management/eager_initialization/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/eager_initialization/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/eager_initialization/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/entity/README.md b/modules/07_design_patterns/08_object_management/entity/README.md similarity index 100% rename from 07_design_patterns/08_object_management/entity/README.md rename to modules/07_design_patterns/08_object_management/entity/README.md diff --git a/07_design_patterns/08_object_management/entity/examples/example_basic.py b/modules/07_design_patterns/08_object_management/entity/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/entity/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/entity/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/entity/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/entity/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/entity/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/entity/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/entity/references/links.md b/modules/07_design_patterns/08_object_management/entity/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/entity/references/links.md rename to modules/07_design_patterns/08_object_management/entity/references/links.md diff --git a/07_design_patterns/08_object_management/entity/tests/test_basic.py b/modules/07_design_patterns/08_object_management/entity/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/entity/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/entity/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/lazy_initialization/README.md b/modules/07_design_patterns/08_object_management/lazy_initialization/README.md similarity index 100% rename from 07_design_patterns/08_object_management/lazy_initialization/README.md rename to modules/07_design_patterns/08_object_management/lazy_initialization/README.md diff --git a/07_design_patterns/08_object_management/lazy_initialization/examples/example_basic.py b/modules/07_design_patterns/08_object_management/lazy_initialization/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/lazy_initialization/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/lazy_initialization/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/lazy_initialization/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/lazy_initialization/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/lazy_initialization/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/lazy_initialization/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/lazy_initialization/references/links.md b/modules/07_design_patterns/08_object_management/lazy_initialization/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/lazy_initialization/references/links.md rename to modules/07_design_patterns/08_object_management/lazy_initialization/references/links.md diff --git a/07_design_patterns/08_object_management/lazy_initialization/tests/test_basic.py b/modules/07_design_patterns/08_object_management/lazy_initialization/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/lazy_initialization/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/lazy_initialization/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/multiton/README.md b/modules/07_design_patterns/08_object_management/multiton/README.md similarity index 100% rename from 07_design_patterns/08_object_management/multiton/README.md rename to modules/07_design_patterns/08_object_management/multiton/README.md diff --git a/07_design_patterns/08_object_management/multiton/examples/example_basic.py b/modules/07_design_patterns/08_object_management/multiton/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/multiton/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/multiton/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/multiton/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/multiton/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/multiton/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/multiton/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/multiton/references/links.md b/modules/07_design_patterns/08_object_management/multiton/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/multiton/references/links.md rename to modules/07_design_patterns/08_object_management/multiton/references/links.md diff --git a/07_design_patterns/08_object_management/multiton/tests/test_basic.py b/modules/07_design_patterns/08_object_management/multiton/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/multiton/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/multiton/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/null_object/README.md b/modules/07_design_patterns/08_object_management/null_object/README.md similarity index 100% rename from 07_design_patterns/08_object_management/null_object/README.md rename to modules/07_design_patterns/08_object_management/null_object/README.md diff --git a/07_design_patterns/08_object_management/null_object/examples/example_basic.py b/modules/07_design_patterns/08_object_management/null_object/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/null_object/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/null_object/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/null_object/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/null_object/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/null_object/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/null_object/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/null_object/references/links.md b/modules/07_design_patterns/08_object_management/null_object/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/null_object/references/links.md rename to modules/07_design_patterns/08_object_management/null_object/references/links.md diff --git a/07_design_patterns/08_object_management/null_object/tests/test_basic.py b/modules/07_design_patterns/08_object_management/null_object/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/null_object/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/null_object/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/object_pool/README.md b/modules/07_design_patterns/08_object_management/object_pool/README.md similarity index 100% rename from 07_design_patterns/08_object_management/object_pool/README.md rename to modules/07_design_patterns/08_object_management/object_pool/README.md diff --git a/07_design_patterns/08_object_management/object_pool/examples/example_basic.py b/modules/07_design_patterns/08_object_management/object_pool/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/object_pool/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/object_pool/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/object_pool/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/object_pool/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/object_pool/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/object_pool/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/object_pool/references/links.md b/modules/07_design_patterns/08_object_management/object_pool/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/object_pool/references/links.md rename to modules/07_design_patterns/08_object_management/object_pool/references/links.md diff --git a/07_design_patterns/08_object_management/object_pool/tests/test_basic.py b/modules/07_design_patterns/08_object_management/object_pool/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/object_pool/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/object_pool/tests/test_basic.py diff --git a/07_design_patterns/08_object_management/value_object/README.md b/modules/07_design_patterns/08_object_management/value_object/README.md similarity index 100% rename from 07_design_patterns/08_object_management/value_object/README.md rename to modules/07_design_patterns/08_object_management/value_object/README.md diff --git a/07_design_patterns/08_object_management/value_object/examples/example_basic.py b/modules/07_design_patterns/08_object_management/value_object/examples/example_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/value_object/examples/example_basic.py rename to modules/07_design_patterns/08_object_management/value_object/examples/example_basic.py diff --git a/07_design_patterns/08_object_management/value_object/exercise/exercise_01.py b/modules/07_design_patterns/08_object_management/value_object/exercise/exercise_01.py similarity index 100% rename from 07_design_patterns/08_object_management/value_object/exercise/exercise_01.py rename to modules/07_design_patterns/08_object_management/value_object/exercise/exercise_01.py diff --git a/07_design_patterns/08_object_management/value_object/references/links.md b/modules/07_design_patterns/08_object_management/value_object/references/links.md similarity index 100% rename from 07_design_patterns/08_object_management/value_object/references/links.md rename to modules/07_design_patterns/08_object_management/value_object/references/links.md diff --git a/07_design_patterns/08_object_management/value_object/tests/test_basic.py b/modules/07_design_patterns/08_object_management/value_object/tests/test_basic.py similarity index 100% rename from 07_design_patterns/08_object_management/value_object/tests/test_basic.py rename to modules/07_design_patterns/08_object_management/value_object/tests/test_basic.py diff --git a/07_design_patterns/README.md b/modules/07_design_patterns/README.md similarity index 100% rename from 07_design_patterns/README.md rename to modules/07_design_patterns/README.md diff --git a/08_application_architecture/README.md b/modules/08_application_architecture/README.md similarity index 100% rename from 08_application_architecture/README.md rename to modules/08_application_architecture/README.md diff --git a/08_application_architecture/cqrs_pattern/README.md b/modules/08_application_architecture/cqrs_pattern/README.md similarity index 100% rename from 08_application_architecture/cqrs_pattern/README.md rename to modules/08_application_architecture/cqrs_pattern/README.md diff --git a/08_application_architecture/cqrs_pattern/examples/example_basic.py b/modules/08_application_architecture/cqrs_pattern/examples/example_basic.py similarity index 100% rename from 08_application_architecture/cqrs_pattern/examples/example_basic.py rename to modules/08_application_architecture/cqrs_pattern/examples/example_basic.py diff --git a/08_application_architecture/cqrs_pattern/exercise/exercise_01.py b/modules/08_application_architecture/cqrs_pattern/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/cqrs_pattern/exercise/exercise_01.py rename to modules/08_application_architecture/cqrs_pattern/exercise/exercise_01.py diff --git a/08_application_architecture/cqrs_pattern/references/links.md b/modules/08_application_architecture/cqrs_pattern/references/links.md similarity index 100% rename from 08_application_architecture/cqrs_pattern/references/links.md rename to modules/08_application_architecture/cqrs_pattern/references/links.md diff --git a/08_application_architecture/cqrs_pattern/tests/test_basic.py b/modules/08_application_architecture/cqrs_pattern/tests/test_basic.py similarity index 100% rename from 08_application_architecture/cqrs_pattern/tests/test_basic.py rename to modules/08_application_architecture/cqrs_pattern/tests/test_basic.py diff --git a/08_application_architecture/ddd_intro/README.md b/modules/08_application_architecture/ddd_intro/README.md similarity index 100% rename from 08_application_architecture/ddd_intro/README.md rename to modules/08_application_architecture/ddd_intro/README.md diff --git a/08_application_architecture/ddd_intro/examples/example_basic.py b/modules/08_application_architecture/ddd_intro/examples/example_basic.py similarity index 100% rename from 08_application_architecture/ddd_intro/examples/example_basic.py rename to modules/08_application_architecture/ddd_intro/examples/example_basic.py diff --git a/08_application_architecture/ddd_intro/exercise/exercise_01.py b/modules/08_application_architecture/ddd_intro/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/ddd_intro/exercise/exercise_01.py rename to modules/08_application_architecture/ddd_intro/exercise/exercise_01.py diff --git a/08_application_architecture/ddd_intro/references/links.md b/modules/08_application_architecture/ddd_intro/references/links.md similarity index 100% rename from 08_application_architecture/ddd_intro/references/links.md rename to modules/08_application_architecture/ddd_intro/references/links.md diff --git a/08_application_architecture/ddd_intro/tests/test_basic.py b/modules/08_application_architecture/ddd_intro/tests/test_basic.py similarity index 100% rename from 08_application_architecture/ddd_intro/tests/test_basic.py rename to modules/08_application_architecture/ddd_intro/tests/test_basic.py diff --git a/08_application_architecture/dependency_injection/README.md b/modules/08_application_architecture/dependency_injection/README.md similarity index 100% rename from 08_application_architecture/dependency_injection/README.md rename to modules/08_application_architecture/dependency_injection/README.md diff --git a/08_application_architecture/dependency_injection/examples/example_basic.py b/modules/08_application_architecture/dependency_injection/examples/example_basic.py similarity index 100% rename from 08_application_architecture/dependency_injection/examples/example_basic.py rename to modules/08_application_architecture/dependency_injection/examples/example_basic.py diff --git a/08_application_architecture/dependency_injection/exercise/exercise_01.py b/modules/08_application_architecture/dependency_injection/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/dependency_injection/exercise/exercise_01.py rename to modules/08_application_architecture/dependency_injection/exercise/exercise_01.py diff --git a/08_application_architecture/dependency_injection/references/links.md b/modules/08_application_architecture/dependency_injection/references/links.md similarity index 100% rename from 08_application_architecture/dependency_injection/references/links.md rename to modules/08_application_architecture/dependency_injection/references/links.md diff --git a/08_application_architecture/dependency_injection/tests/test_basic.py b/modules/08_application_architecture/dependency_injection/tests/test_basic.py similarity index 100% rename from 08_application_architecture/dependency_injection/tests/test_basic.py rename to modules/08_application_architecture/dependency_injection/tests/test_basic.py diff --git a/08_application_architecture/dependency_inversion/README.md b/modules/08_application_architecture/dependency_inversion/README.md similarity index 100% rename from 08_application_architecture/dependency_inversion/README.md rename to modules/08_application_architecture/dependency_inversion/README.md diff --git a/08_application_architecture/dependency_inversion/examples/example_basic.py b/modules/08_application_architecture/dependency_inversion/examples/example_basic.py similarity index 100% rename from 08_application_architecture/dependency_inversion/examples/example_basic.py rename to modules/08_application_architecture/dependency_inversion/examples/example_basic.py diff --git a/08_application_architecture/dependency_inversion/exercise/exercise_01.py b/modules/08_application_architecture/dependency_inversion/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/dependency_inversion/exercise/exercise_01.py rename to modules/08_application_architecture/dependency_inversion/exercise/exercise_01.py diff --git a/08_application_architecture/dependency_inversion/references/links.md b/modules/08_application_architecture/dependency_inversion/references/links.md similarity index 100% rename from 08_application_architecture/dependency_inversion/references/links.md rename to modules/08_application_architecture/dependency_inversion/references/links.md diff --git a/08_application_architecture/dependency_inversion/tests/test_basic.py b/modules/08_application_architecture/dependency_inversion/tests/test_basic.py similarity index 100% rename from 08_application_architecture/dependency_inversion/tests/test_basic.py rename to modules/08_application_architecture/dependency_inversion/tests/test_basic.py diff --git a/08_application_architecture/entities_value_objects/README.md b/modules/08_application_architecture/entities_value_objects/README.md similarity index 100% rename from 08_application_architecture/entities_value_objects/README.md rename to modules/08_application_architecture/entities_value_objects/README.md diff --git a/08_application_architecture/entities_value_objects/examples/example_basic.py b/modules/08_application_architecture/entities_value_objects/examples/example_basic.py similarity index 100% rename from 08_application_architecture/entities_value_objects/examples/example_basic.py rename to modules/08_application_architecture/entities_value_objects/examples/example_basic.py diff --git a/08_application_architecture/entities_value_objects/exercise/exercise_01.py b/modules/08_application_architecture/entities_value_objects/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/entities_value_objects/exercise/exercise_01.py rename to modules/08_application_architecture/entities_value_objects/exercise/exercise_01.py diff --git a/08_application_architecture/entities_value_objects/references/links.md b/modules/08_application_architecture/entities_value_objects/references/links.md similarity index 100% rename from 08_application_architecture/entities_value_objects/references/links.md rename to modules/08_application_architecture/entities_value_objects/references/links.md diff --git a/08_application_architecture/entities_value_objects/tests/test_basic.py b/modules/08_application_architecture/entities_value_objects/tests/test_basic.py similarity index 100% rename from 08_application_architecture/entities_value_objects/tests/test_basic.py rename to modules/08_application_architecture/entities_value_objects/tests/test_basic.py diff --git a/08_application_architecture/event_driven_arch/README.md b/modules/08_application_architecture/event_driven_arch/README.md similarity index 100% rename from 08_application_architecture/event_driven_arch/README.md rename to modules/08_application_architecture/event_driven_arch/README.md diff --git a/08_application_architecture/event_driven_arch/examples/example_basic.py b/modules/08_application_architecture/event_driven_arch/examples/example_basic.py similarity index 100% rename from 08_application_architecture/event_driven_arch/examples/example_basic.py rename to modules/08_application_architecture/event_driven_arch/examples/example_basic.py diff --git a/08_application_architecture/event_driven_arch/exercise/exercise_01.py b/modules/08_application_architecture/event_driven_arch/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/event_driven_arch/exercise/exercise_01.py rename to modules/08_application_architecture/event_driven_arch/exercise/exercise_01.py diff --git a/08_application_architecture/event_driven_arch/references/links.md b/modules/08_application_architecture/event_driven_arch/references/links.md similarity index 100% rename from 08_application_architecture/event_driven_arch/references/links.md rename to modules/08_application_architecture/event_driven_arch/references/links.md diff --git a/08_application_architecture/event_driven_arch/tests/test_basic.py b/modules/08_application_architecture/event_driven_arch/tests/test_basic.py similarity index 100% rename from 08_application_architecture/event_driven_arch/tests/test_basic.py rename to modules/08_application_architecture/event_driven_arch/tests/test_basic.py diff --git a/08_application_architecture/hexagonal_architecture/README.md b/modules/08_application_architecture/hexagonal_architecture/README.md similarity index 100% rename from 08_application_architecture/hexagonal_architecture/README.md rename to modules/08_application_architecture/hexagonal_architecture/README.md diff --git a/08_application_architecture/hexagonal_architecture/examples/example_basic.py b/modules/08_application_architecture/hexagonal_architecture/examples/example_basic.py similarity index 100% rename from 08_application_architecture/hexagonal_architecture/examples/example_basic.py rename to modules/08_application_architecture/hexagonal_architecture/examples/example_basic.py diff --git a/08_application_architecture/hexagonal_architecture/exercise/exercise_01.py b/modules/08_application_architecture/hexagonal_architecture/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/hexagonal_architecture/exercise/exercise_01.py rename to modules/08_application_architecture/hexagonal_architecture/exercise/exercise_01.py diff --git a/08_application_architecture/hexagonal_architecture/references/links.md b/modules/08_application_architecture/hexagonal_architecture/references/links.md similarity index 100% rename from 08_application_architecture/hexagonal_architecture/references/links.md rename to modules/08_application_architecture/hexagonal_architecture/references/links.md diff --git a/08_application_architecture/hexagonal_architecture/tests/test_basic.py b/modules/08_application_architecture/hexagonal_architecture/tests/test_basic.py similarity index 100% rename from 08_application_architecture/hexagonal_architecture/tests/test_basic.py rename to modules/08_application_architecture/hexagonal_architecture/tests/test_basic.py diff --git a/08_application_architecture/interface_segregation/README.md b/modules/08_application_architecture/interface_segregation/README.md similarity index 100% rename from 08_application_architecture/interface_segregation/README.md rename to modules/08_application_architecture/interface_segregation/README.md diff --git a/08_application_architecture/interface_segregation/examples/example_basic.py b/modules/08_application_architecture/interface_segregation/examples/example_basic.py similarity index 100% rename from 08_application_architecture/interface_segregation/examples/example_basic.py rename to modules/08_application_architecture/interface_segregation/examples/example_basic.py diff --git a/08_application_architecture/interface_segregation/exercise/exercise_01.py b/modules/08_application_architecture/interface_segregation/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/interface_segregation/exercise/exercise_01.py rename to modules/08_application_architecture/interface_segregation/exercise/exercise_01.py diff --git a/08_application_architecture/interface_segregation/references/links.md b/modules/08_application_architecture/interface_segregation/references/links.md similarity index 100% rename from 08_application_architecture/interface_segregation/references/links.md rename to modules/08_application_architecture/interface_segregation/references/links.md diff --git a/08_application_architecture/interface_segregation/tests/test_basic.py b/modules/08_application_architecture/interface_segregation/tests/test_basic.py similarity index 100% rename from 08_application_architecture/interface_segregation/tests/test_basic.py rename to modules/08_application_architecture/interface_segregation/tests/test_basic.py diff --git a/08_application_architecture/inversion_control/README.md b/modules/08_application_architecture/inversion_control/README.md similarity index 100% rename from 08_application_architecture/inversion_control/README.md rename to modules/08_application_architecture/inversion_control/README.md diff --git a/08_application_architecture/inversion_control/examples/example_basic.py b/modules/08_application_architecture/inversion_control/examples/example_basic.py similarity index 100% rename from 08_application_architecture/inversion_control/examples/example_basic.py rename to modules/08_application_architecture/inversion_control/examples/example_basic.py diff --git a/08_application_architecture/inversion_control/exercise/exercise_01.py b/modules/08_application_architecture/inversion_control/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/inversion_control/exercise/exercise_01.py rename to modules/08_application_architecture/inversion_control/exercise/exercise_01.py diff --git a/08_application_architecture/inversion_control/references/links.md b/modules/08_application_architecture/inversion_control/references/links.md similarity index 100% rename from 08_application_architecture/inversion_control/references/links.md rename to modules/08_application_architecture/inversion_control/references/links.md diff --git a/08_application_architecture/inversion_control/tests/test_basic.py b/modules/08_application_architecture/inversion_control/tests/test_basic.py similarity index 100% rename from 08_application_architecture/inversion_control/tests/test_basic.py rename to modules/08_application_architecture/inversion_control/tests/test_basic.py diff --git a/08_application_architecture/liskov_substitution/README.md b/modules/08_application_architecture/liskov_substitution/README.md similarity index 100% rename from 08_application_architecture/liskov_substitution/README.md rename to modules/08_application_architecture/liskov_substitution/README.md diff --git a/08_application_architecture/liskov_substitution/examples/example_basic.py b/modules/08_application_architecture/liskov_substitution/examples/example_basic.py similarity index 100% rename from 08_application_architecture/liskov_substitution/examples/example_basic.py rename to modules/08_application_architecture/liskov_substitution/examples/example_basic.py diff --git a/08_application_architecture/liskov_substitution/exercise/exercise_01.py b/modules/08_application_architecture/liskov_substitution/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/liskov_substitution/exercise/exercise_01.py rename to modules/08_application_architecture/liskov_substitution/exercise/exercise_01.py diff --git a/08_application_architecture/liskov_substitution/references/links.md b/modules/08_application_architecture/liskov_substitution/references/links.md similarity index 100% rename from 08_application_architecture/liskov_substitution/references/links.md rename to modules/08_application_architecture/liskov_substitution/references/links.md diff --git a/08_application_architecture/liskov_substitution/tests/test_basic.py b/modules/08_application_architecture/liskov_substitution/tests/test_basic.py similarity index 100% rename from 08_application_architecture/liskov_substitution/tests/test_basic.py rename to modules/08_application_architecture/liskov_substitution/tests/test_basic.py diff --git a/08_application_architecture/observability/README.md b/modules/08_application_architecture/observability/README.md similarity index 100% rename from 08_application_architecture/observability/README.md rename to modules/08_application_architecture/observability/README.md diff --git a/08_application_architecture/observability/examples/example_basic.py b/modules/08_application_architecture/observability/examples/example_basic.py similarity index 100% rename from 08_application_architecture/observability/examples/example_basic.py rename to modules/08_application_architecture/observability/examples/example_basic.py diff --git a/08_application_architecture/observability/exercise/exercise_01.py b/modules/08_application_architecture/observability/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/observability/exercise/exercise_01.py rename to modules/08_application_architecture/observability/exercise/exercise_01.py diff --git a/08_application_architecture/observability/references/links.md b/modules/08_application_architecture/observability/references/links.md similarity index 100% rename from 08_application_architecture/observability/references/links.md rename to modules/08_application_architecture/observability/references/links.md diff --git a/08_application_architecture/observability/tests/test_basic.py b/modules/08_application_architecture/observability/tests/test_basic.py similarity index 100% rename from 08_application_architecture/observability/tests/test_basic.py rename to modules/08_application_architecture/observability/tests/test_basic.py diff --git a/08_application_architecture/open_closed/README.md b/modules/08_application_architecture/open_closed/README.md similarity index 100% rename from 08_application_architecture/open_closed/README.md rename to modules/08_application_architecture/open_closed/README.md diff --git a/08_application_architecture/open_closed/examples/example_basic.py b/modules/08_application_architecture/open_closed/examples/example_basic.py similarity index 100% rename from 08_application_architecture/open_closed/examples/example_basic.py rename to modules/08_application_architecture/open_closed/examples/example_basic.py diff --git a/08_application_architecture/open_closed/exercise/exercise_01.py b/modules/08_application_architecture/open_closed/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/open_closed/exercise/exercise_01.py rename to modules/08_application_architecture/open_closed/exercise/exercise_01.py diff --git a/08_application_architecture/open_closed/references/links.md b/modules/08_application_architecture/open_closed/references/links.md similarity index 100% rename from 08_application_architecture/open_closed/references/links.md rename to modules/08_application_architecture/open_closed/references/links.md diff --git a/08_application_architecture/open_closed/tests/test_basic.py b/modules/08_application_architecture/open_closed/tests/test_basic.py similarity index 100% rename from 08_application_architecture/open_closed/tests/test_basic.py rename to modules/08_application_architecture/open_closed/tests/test_basic.py diff --git a/08_application_architecture/ports_adapters/README.md b/modules/08_application_architecture/ports_adapters/README.md similarity index 100% rename from 08_application_architecture/ports_adapters/README.md rename to modules/08_application_architecture/ports_adapters/README.md diff --git a/08_application_architecture/ports_adapters/examples/example_basic.py b/modules/08_application_architecture/ports_adapters/examples/example_basic.py similarity index 100% rename from 08_application_architecture/ports_adapters/examples/example_basic.py rename to modules/08_application_architecture/ports_adapters/examples/example_basic.py diff --git a/08_application_architecture/ports_adapters/exercise/exercise_01.py b/modules/08_application_architecture/ports_adapters/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/ports_adapters/exercise/exercise_01.py rename to modules/08_application_architecture/ports_adapters/exercise/exercise_01.py diff --git a/08_application_architecture/ports_adapters/references/links.md b/modules/08_application_architecture/ports_adapters/references/links.md similarity index 100% rename from 08_application_architecture/ports_adapters/references/links.md rename to modules/08_application_architecture/ports_adapters/references/links.md diff --git a/08_application_architecture/ports_adapters/tests/test_basic.py b/modules/08_application_architecture/ports_adapters/tests/test_basic.py similarity index 100% rename from 08_application_architecture/ports_adapters/tests/test_basic.py rename to modules/08_application_architecture/ports_adapters/tests/test_basic.py diff --git a/08_application_architecture/repositories/README.md b/modules/08_application_architecture/repositories/README.md similarity index 100% rename from 08_application_architecture/repositories/README.md rename to modules/08_application_architecture/repositories/README.md diff --git a/08_application_architecture/repositories/examples/example_basic.py b/modules/08_application_architecture/repositories/examples/example_basic.py similarity index 100% rename from 08_application_architecture/repositories/examples/example_basic.py rename to modules/08_application_architecture/repositories/examples/example_basic.py diff --git a/08_application_architecture/repositories/exercise/exercise_01.py b/modules/08_application_architecture/repositories/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/repositories/exercise/exercise_01.py rename to modules/08_application_architecture/repositories/exercise/exercise_01.py diff --git a/08_application_architecture/repositories/references/links.md b/modules/08_application_architecture/repositories/references/links.md similarity index 100% rename from 08_application_architecture/repositories/references/links.md rename to modules/08_application_architecture/repositories/references/links.md diff --git a/08_application_architecture/repositories/tests/test_basic.py b/modules/08_application_architecture/repositories/tests/test_basic.py similarity index 100% rename from 08_application_architecture/repositories/tests/test_basic.py rename to modules/08_application_architecture/repositories/tests/test_basic.py diff --git a/08_application_architecture/services_uow/README.md b/modules/08_application_architecture/services_uow/README.md similarity index 100% rename from 08_application_architecture/services_uow/README.md rename to modules/08_application_architecture/services_uow/README.md diff --git a/08_application_architecture/services_uow/examples/example_basic.py b/modules/08_application_architecture/services_uow/examples/example_basic.py similarity index 100% rename from 08_application_architecture/services_uow/examples/example_basic.py rename to modules/08_application_architecture/services_uow/examples/example_basic.py diff --git a/08_application_architecture/services_uow/exercise/exercise_01.py b/modules/08_application_architecture/services_uow/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/services_uow/exercise/exercise_01.py rename to modules/08_application_architecture/services_uow/exercise/exercise_01.py diff --git a/08_application_architecture/services_uow/references/links.md b/modules/08_application_architecture/services_uow/references/links.md similarity index 100% rename from 08_application_architecture/services_uow/references/links.md rename to modules/08_application_architecture/services_uow/references/links.md diff --git a/08_application_architecture/services_uow/tests/test_basic.py b/modules/08_application_architecture/services_uow/tests/test_basic.py similarity index 100% rename from 08_application_architecture/services_uow/tests/test_basic.py rename to modules/08_application_architecture/services_uow/tests/test_basic.py diff --git a/08_application_architecture/single_responsibility/README.md b/modules/08_application_architecture/single_responsibility/README.md similarity index 100% rename from 08_application_architecture/single_responsibility/README.md rename to modules/08_application_architecture/single_responsibility/README.md diff --git a/08_application_architecture/single_responsibility/examples/example_basic.py b/modules/08_application_architecture/single_responsibility/examples/example_basic.py similarity index 100% rename from 08_application_architecture/single_responsibility/examples/example_basic.py rename to modules/08_application_architecture/single_responsibility/examples/example_basic.py diff --git a/08_application_architecture/single_responsibility/exercise/exercise_01.py b/modules/08_application_architecture/single_responsibility/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/single_responsibility/exercise/exercise_01.py rename to modules/08_application_architecture/single_responsibility/exercise/exercise_01.py diff --git a/08_application_architecture/single_responsibility/references/links.md b/modules/08_application_architecture/single_responsibility/references/links.md similarity index 100% rename from 08_application_architecture/single_responsibility/references/links.md rename to modules/08_application_architecture/single_responsibility/references/links.md diff --git a/08_application_architecture/single_responsibility/tests/test_basic.py b/modules/08_application_architecture/single_responsibility/tests/test_basic.py similarity index 100% rename from 08_application_architecture/single_responsibility/tests/test_basic.py rename to modules/08_application_architecture/single_responsibility/tests/test_basic.py diff --git a/08_application_architecture/solid_principles/README.md b/modules/08_application_architecture/solid_principles/README.md similarity index 100% rename from 08_application_architecture/solid_principles/README.md rename to modules/08_application_architecture/solid_principles/README.md diff --git a/08_application_architecture/solid_principles/examples/example_basic.py b/modules/08_application_architecture/solid_principles/examples/example_basic.py similarity index 100% rename from 08_application_architecture/solid_principles/examples/example_basic.py rename to modules/08_application_architecture/solid_principles/examples/example_basic.py diff --git a/08_application_architecture/solid_principles/exercise/exercise_01.py b/modules/08_application_architecture/solid_principles/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/solid_principles/exercise/exercise_01.py rename to modules/08_application_architecture/solid_principles/exercise/exercise_01.py diff --git a/08_application_architecture/solid_principles/references/links.md b/modules/08_application_architecture/solid_principles/references/links.md similarity index 100% rename from 08_application_architecture/solid_principles/references/links.md rename to modules/08_application_architecture/solid_principles/references/links.md diff --git a/08_application_architecture/solid_principles/tests/test_basic.py b/modules/08_application_architecture/solid_principles/tests/test_basic.py similarity index 100% rename from 08_application_architecture/solid_principles/tests/test_basic.py rename to modules/08_application_architecture/solid_principles/tests/test_basic.py diff --git a/08_application_architecture/structured_logging/README.md b/modules/08_application_architecture/structured_logging/README.md similarity index 100% rename from 08_application_architecture/structured_logging/README.md rename to modules/08_application_architecture/structured_logging/README.md diff --git a/08_application_architecture/structured_logging/examples/example_basic.py b/modules/08_application_architecture/structured_logging/examples/example_basic.py similarity index 100% rename from 08_application_architecture/structured_logging/examples/example_basic.py rename to modules/08_application_architecture/structured_logging/examples/example_basic.py diff --git a/08_application_architecture/structured_logging/exercise/exercise_01.py b/modules/08_application_architecture/structured_logging/exercise/exercise_01.py similarity index 100% rename from 08_application_architecture/structured_logging/exercise/exercise_01.py rename to modules/08_application_architecture/structured_logging/exercise/exercise_01.py diff --git a/08_application_architecture/structured_logging/references/links.md b/modules/08_application_architecture/structured_logging/references/links.md similarity index 100% rename from 08_application_architecture/structured_logging/references/links.md rename to modules/08_application_architecture/structured_logging/references/links.md diff --git a/08_application_architecture/structured_logging/tests/test_basic.py b/modules/08_application_architecture/structured_logging/tests/test_basic.py similarity index 100% rename from 08_application_architecture/structured_logging/tests/test_basic.py rename to modules/08_application_architecture/structured_logging/tests/test_basic.py diff --git a/09_testing_qa/README.md b/modules/09_testing_qa/README.md similarity index 100% rename from 09_testing_qa/README.md rename to modules/09_testing_qa/README.md diff --git a/09_testing_qa/bdd_behave_optional/README.md b/modules/09_testing_qa/bdd_behave_optional/README.md similarity index 100% rename from 09_testing_qa/bdd_behave_optional/README.md rename to modules/09_testing_qa/bdd_behave_optional/README.md diff --git a/09_testing_qa/bdd_behave_optional/examples/example_basic.py b/modules/09_testing_qa/bdd_behave_optional/examples/example_basic.py similarity index 100% rename from 09_testing_qa/bdd_behave_optional/examples/example_basic.py rename to modules/09_testing_qa/bdd_behave_optional/examples/example_basic.py diff --git a/09_testing_qa/bdd_behave_optional/exercise/exercise_01.py b/modules/09_testing_qa/bdd_behave_optional/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/bdd_behave_optional/exercise/exercise_01.py rename to modules/09_testing_qa/bdd_behave_optional/exercise/exercise_01.py diff --git a/09_testing_qa/bdd_behave_optional/references/links.md b/modules/09_testing_qa/bdd_behave_optional/references/links.md similarity index 100% rename from 09_testing_qa/bdd_behave_optional/references/links.md rename to modules/09_testing_qa/bdd_behave_optional/references/links.md diff --git a/09_testing_qa/bdd_behave_optional/tests/test_basic.py b/modules/09_testing_qa/bdd_behave_optional/tests/test_basic.py similarity index 100% rename from 09_testing_qa/bdd_behave_optional/tests/test_basic.py rename to modules/09_testing_qa/bdd_behave_optional/tests/test_basic.py diff --git a/09_testing_qa/ci_testing/README.md b/modules/09_testing_qa/ci_testing/README.md similarity index 100% rename from 09_testing_qa/ci_testing/README.md rename to modules/09_testing_qa/ci_testing/README.md diff --git a/09_testing_qa/ci_testing/examples/example_basic.py b/modules/09_testing_qa/ci_testing/examples/example_basic.py similarity index 100% rename from 09_testing_qa/ci_testing/examples/example_basic.py rename to modules/09_testing_qa/ci_testing/examples/example_basic.py diff --git a/09_testing_qa/ci_testing/exercise/exercise_01.py b/modules/09_testing_qa/ci_testing/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/ci_testing/exercise/exercise_01.py rename to modules/09_testing_qa/ci_testing/exercise/exercise_01.py diff --git a/09_testing_qa/ci_testing/references/links.md b/modules/09_testing_qa/ci_testing/references/links.md similarity index 100% rename from 09_testing_qa/ci_testing/references/links.md rename to modules/09_testing_qa/ci_testing/references/links.md diff --git a/09_testing_qa/ci_testing/tests/test_basic.py b/modules/09_testing_qa/ci_testing/tests/test_basic.py similarity index 100% rename from 09_testing_qa/ci_testing/tests/test_basic.py rename to modules/09_testing_qa/ci_testing/tests/test_basic.py diff --git a/09_testing_qa/contract_testing/README.md b/modules/09_testing_qa/contract_testing/README.md similarity index 100% rename from 09_testing_qa/contract_testing/README.md rename to modules/09_testing_qa/contract_testing/README.md diff --git a/09_testing_qa/contract_testing/examples/example_basic.py b/modules/09_testing_qa/contract_testing/examples/example_basic.py similarity index 100% rename from 09_testing_qa/contract_testing/examples/example_basic.py rename to modules/09_testing_qa/contract_testing/examples/example_basic.py diff --git a/09_testing_qa/contract_testing/exercise/exercise_01.py b/modules/09_testing_qa/contract_testing/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/contract_testing/exercise/exercise_01.py rename to modules/09_testing_qa/contract_testing/exercise/exercise_01.py diff --git a/09_testing_qa/contract_testing/references/links.md b/modules/09_testing_qa/contract_testing/references/links.md similarity index 100% rename from 09_testing_qa/contract_testing/references/links.md rename to modules/09_testing_qa/contract_testing/references/links.md diff --git a/09_testing_qa/contract_testing/tests/test_basic.py b/modules/09_testing_qa/contract_testing/tests/test_basic.py similarity index 100% rename from 09_testing_qa/contract_testing/tests/test_basic.py rename to modules/09_testing_qa/contract_testing/tests/test_basic.py diff --git a/09_testing_qa/coverage_analysis/README.md b/modules/09_testing_qa/coverage_analysis/README.md similarity index 100% rename from 09_testing_qa/coverage_analysis/README.md rename to modules/09_testing_qa/coverage_analysis/README.md diff --git a/09_testing_qa/coverage_analysis/examples/example_basic.py b/modules/09_testing_qa/coverage_analysis/examples/example_basic.py similarity index 100% rename from 09_testing_qa/coverage_analysis/examples/example_basic.py rename to modules/09_testing_qa/coverage_analysis/examples/example_basic.py diff --git a/09_testing_qa/coverage_analysis/exercise/exercise_01.py b/modules/09_testing_qa/coverage_analysis/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/coverage_analysis/exercise/exercise_01.py rename to modules/09_testing_qa/coverage_analysis/exercise/exercise_01.py diff --git a/09_testing_qa/coverage_analysis/references/links.md b/modules/09_testing_qa/coverage_analysis/references/links.md similarity index 100% rename from 09_testing_qa/coverage_analysis/references/links.md rename to modules/09_testing_qa/coverage_analysis/references/links.md diff --git a/09_testing_qa/coverage_analysis/tests/test_basic.py b/modules/09_testing_qa/coverage_analysis/tests/test_basic.py similarity index 100% rename from 09_testing_qa/coverage_analysis/tests/test_basic.py rename to modules/09_testing_qa/coverage_analysis/tests/test_basic.py diff --git a/09_testing_qa/fixtures/README.md b/modules/09_testing_qa/fixtures/README.md similarity index 100% rename from 09_testing_qa/fixtures/README.md rename to modules/09_testing_qa/fixtures/README.md diff --git a/09_testing_qa/fixtures/examples/example_basic.py b/modules/09_testing_qa/fixtures/examples/example_basic.py similarity index 100% rename from 09_testing_qa/fixtures/examples/example_basic.py rename to modules/09_testing_qa/fixtures/examples/example_basic.py diff --git a/09_testing_qa/fixtures/exercise/exercise_01.py b/modules/09_testing_qa/fixtures/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/fixtures/exercise/exercise_01.py rename to modules/09_testing_qa/fixtures/exercise/exercise_01.py diff --git a/09_testing_qa/fixtures/references/links.md b/modules/09_testing_qa/fixtures/references/links.md similarity index 100% rename from 09_testing_qa/fixtures/references/links.md rename to modules/09_testing_qa/fixtures/references/links.md diff --git a/09_testing_qa/fixtures/tests/test_basic.py b/modules/09_testing_qa/fixtures/tests/test_basic.py similarity index 100% rename from 09_testing_qa/fixtures/tests/test_basic.py rename to modules/09_testing_qa/fixtures/tests/test_basic.py diff --git a/09_testing_qa/hypothesis_intro/README.md b/modules/09_testing_qa/hypothesis_intro/README.md similarity index 100% rename from 09_testing_qa/hypothesis_intro/README.md rename to modules/09_testing_qa/hypothesis_intro/README.md diff --git a/09_testing_qa/hypothesis_intro/examples/example_basic.py b/modules/09_testing_qa/hypothesis_intro/examples/example_basic.py similarity index 100% rename from 09_testing_qa/hypothesis_intro/examples/example_basic.py rename to modules/09_testing_qa/hypothesis_intro/examples/example_basic.py diff --git a/09_testing_qa/hypothesis_intro/exercise/exercise_01.py b/modules/09_testing_qa/hypothesis_intro/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/hypothesis_intro/exercise/exercise_01.py rename to modules/09_testing_qa/hypothesis_intro/exercise/exercise_01.py diff --git a/09_testing_qa/hypothesis_intro/references/links.md b/modules/09_testing_qa/hypothesis_intro/references/links.md similarity index 100% rename from 09_testing_qa/hypothesis_intro/references/links.md rename to modules/09_testing_qa/hypothesis_intro/references/links.md diff --git a/09_testing_qa/hypothesis_intro/tests/test_basic.py b/modules/09_testing_qa/hypothesis_intro/tests/test_basic.py similarity index 100% rename from 09_testing_qa/hypothesis_intro/tests/test_basic.py rename to modules/09_testing_qa/hypothesis_intro/tests/test_basic.py diff --git a/09_testing_qa/integration_testing/README.md b/modules/09_testing_qa/integration_testing/README.md similarity index 100% rename from 09_testing_qa/integration_testing/README.md rename to modules/09_testing_qa/integration_testing/README.md diff --git a/09_testing_qa/integration_testing/examples/example_basic.py b/modules/09_testing_qa/integration_testing/examples/example_basic.py similarity index 100% rename from 09_testing_qa/integration_testing/examples/example_basic.py rename to modules/09_testing_qa/integration_testing/examples/example_basic.py diff --git a/09_testing_qa/integration_testing/exercise/exercise_01.py b/modules/09_testing_qa/integration_testing/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/integration_testing/exercise/exercise_01.py rename to modules/09_testing_qa/integration_testing/exercise/exercise_01.py diff --git a/09_testing_qa/integration_testing/references/links.md b/modules/09_testing_qa/integration_testing/references/links.md similarity index 100% rename from 09_testing_qa/integration_testing/references/links.md rename to modules/09_testing_qa/integration_testing/references/links.md diff --git a/09_testing_qa/integration_testing/tests/test_basic.py b/modules/09_testing_qa/integration_testing/tests/test_basic.py similarity index 100% rename from 09_testing_qa/integration_testing/tests/test_basic.py rename to modules/09_testing_qa/integration_testing/tests/test_basic.py diff --git a/09_testing_qa/mocking_unittest/README.md b/modules/09_testing_qa/mocking_unittest/README.md similarity index 100% rename from 09_testing_qa/mocking_unittest/README.md rename to modules/09_testing_qa/mocking_unittest/README.md diff --git a/09_testing_qa/mocking_unittest/examples/example_basic.py b/modules/09_testing_qa/mocking_unittest/examples/example_basic.py similarity index 100% rename from 09_testing_qa/mocking_unittest/examples/example_basic.py rename to modules/09_testing_qa/mocking_unittest/examples/example_basic.py diff --git a/09_testing_qa/mocking_unittest/exercise/exercise_01.py b/modules/09_testing_qa/mocking_unittest/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/mocking_unittest/exercise/exercise_01.py rename to modules/09_testing_qa/mocking_unittest/exercise/exercise_01.py diff --git a/09_testing_qa/mocking_unittest/references/links.md b/modules/09_testing_qa/mocking_unittest/references/links.md similarity index 100% rename from 09_testing_qa/mocking_unittest/references/links.md rename to modules/09_testing_qa/mocking_unittest/references/links.md diff --git a/09_testing_qa/mocking_unittest/tests/test_basic.py b/modules/09_testing_qa/mocking_unittest/tests/test_basic.py similarity index 100% rename from 09_testing_qa/mocking_unittest/tests/test_basic.py rename to modules/09_testing_qa/mocking_unittest/tests/test_basic.py diff --git a/09_testing_qa/mutation_testing/README.md b/modules/09_testing_qa/mutation_testing/README.md similarity index 100% rename from 09_testing_qa/mutation_testing/README.md rename to modules/09_testing_qa/mutation_testing/README.md diff --git a/09_testing_qa/mutation_testing/examples/example_basic.py b/modules/09_testing_qa/mutation_testing/examples/example_basic.py similarity index 100% rename from 09_testing_qa/mutation_testing/examples/example_basic.py rename to modules/09_testing_qa/mutation_testing/examples/example_basic.py diff --git a/09_testing_qa/mutation_testing/exercise/exercise_01.py b/modules/09_testing_qa/mutation_testing/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/mutation_testing/exercise/exercise_01.py rename to modules/09_testing_qa/mutation_testing/exercise/exercise_01.py diff --git a/09_testing_qa/mutation_testing/references/links.md b/modules/09_testing_qa/mutation_testing/references/links.md similarity index 100% rename from 09_testing_qa/mutation_testing/references/links.md rename to modules/09_testing_qa/mutation_testing/references/links.md diff --git a/09_testing_qa/mutation_testing/tests/test_basic.py b/modules/09_testing_qa/mutation_testing/tests/test_basic.py similarity index 100% rename from 09_testing_qa/mutation_testing/tests/test_basic.py rename to modules/09_testing_qa/mutation_testing/tests/test_basic.py diff --git a/09_testing_qa/parametrize/README.md b/modules/09_testing_qa/parametrize/README.md similarity index 100% rename from 09_testing_qa/parametrize/README.md rename to modules/09_testing_qa/parametrize/README.md diff --git a/09_testing_qa/parametrize/examples/example_basic.py b/modules/09_testing_qa/parametrize/examples/example_basic.py similarity index 100% rename from 09_testing_qa/parametrize/examples/example_basic.py rename to modules/09_testing_qa/parametrize/examples/example_basic.py diff --git a/09_testing_qa/parametrize/exercise/exercise_01.py b/modules/09_testing_qa/parametrize/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/parametrize/exercise/exercise_01.py rename to modules/09_testing_qa/parametrize/exercise/exercise_01.py diff --git a/09_testing_qa/parametrize/references/links.md b/modules/09_testing_qa/parametrize/references/links.md similarity index 100% rename from 09_testing_qa/parametrize/references/links.md rename to modules/09_testing_qa/parametrize/references/links.md diff --git a/09_testing_qa/parametrize/tests/test_basic.py b/modules/09_testing_qa/parametrize/tests/test_basic.py similarity index 100% rename from 09_testing_qa/parametrize/tests/test_basic.py rename to modules/09_testing_qa/parametrize/tests/test_basic.py diff --git a/09_testing_qa/property_based_testing/README.md b/modules/09_testing_qa/property_based_testing/README.md similarity index 100% rename from 09_testing_qa/property_based_testing/README.md rename to modules/09_testing_qa/property_based_testing/README.md diff --git a/09_testing_qa/property_based_testing/examples/example_basic.py b/modules/09_testing_qa/property_based_testing/examples/example_basic.py similarity index 100% rename from 09_testing_qa/property_based_testing/examples/example_basic.py rename to modules/09_testing_qa/property_based_testing/examples/example_basic.py diff --git a/09_testing_qa/property_based_testing/exercise/exercise_01.py b/modules/09_testing_qa/property_based_testing/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/property_based_testing/exercise/exercise_01.py rename to modules/09_testing_qa/property_based_testing/exercise/exercise_01.py diff --git a/09_testing_qa/property_based_testing/references/links.md b/modules/09_testing_qa/property_based_testing/references/links.md similarity index 100% rename from 09_testing_qa/property_based_testing/references/links.md rename to modules/09_testing_qa/property_based_testing/references/links.md diff --git a/09_testing_qa/property_based_testing/tests/test_basic.py b/modules/09_testing_qa/property_based_testing/tests/test_basic.py similarity index 100% rename from 09_testing_qa/property_based_testing/tests/test_basic.py rename to modules/09_testing_qa/property_based_testing/tests/test_basic.py diff --git a/09_testing_qa/pytest_asyncio/README.md b/modules/09_testing_qa/pytest_asyncio/README.md similarity index 100% rename from 09_testing_qa/pytest_asyncio/README.md rename to modules/09_testing_qa/pytest_asyncio/README.md diff --git a/09_testing_qa/pytest_asyncio/examples/example_basic.py b/modules/09_testing_qa/pytest_asyncio/examples/example_basic.py similarity index 100% rename from 09_testing_qa/pytest_asyncio/examples/example_basic.py rename to modules/09_testing_qa/pytest_asyncio/examples/example_basic.py diff --git a/09_testing_qa/pytest_asyncio/exercise/exercise_01.py b/modules/09_testing_qa/pytest_asyncio/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/pytest_asyncio/exercise/exercise_01.py rename to modules/09_testing_qa/pytest_asyncio/exercise/exercise_01.py diff --git a/09_testing_qa/pytest_asyncio/references/links.md b/modules/09_testing_qa/pytest_asyncio/references/links.md similarity index 100% rename from 09_testing_qa/pytest_asyncio/references/links.md rename to modules/09_testing_qa/pytest_asyncio/references/links.md diff --git a/09_testing_qa/pytest_asyncio/tests/test_basic.py b/modules/09_testing_qa/pytest_asyncio/tests/test_basic.py similarity index 100% rename from 09_testing_qa/pytest_asyncio/tests/test_basic.py rename to modules/09_testing_qa/pytest_asyncio/tests/test_basic.py diff --git a/09_testing_qa/pytest_basics/README.md b/modules/09_testing_qa/pytest_basics/README.md similarity index 100% rename from 09_testing_qa/pytest_basics/README.md rename to modules/09_testing_qa/pytest_basics/README.md diff --git a/09_testing_qa/pytest_basics/examples/example_basic.py b/modules/09_testing_qa/pytest_basics/examples/example_basic.py similarity index 100% rename from 09_testing_qa/pytest_basics/examples/example_basic.py rename to modules/09_testing_qa/pytest_basics/examples/example_basic.py diff --git a/09_testing_qa/pytest_basics/exercise/exercise_01.py b/modules/09_testing_qa/pytest_basics/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/pytest_basics/exercise/exercise_01.py rename to modules/09_testing_qa/pytest_basics/exercise/exercise_01.py diff --git a/09_testing_qa/pytest_basics/references/links.md b/modules/09_testing_qa/pytest_basics/references/links.md similarity index 100% rename from 09_testing_qa/pytest_basics/references/links.md rename to modules/09_testing_qa/pytest_basics/references/links.md diff --git a/09_testing_qa/pytest_basics/tests/test_basic.py b/modules/09_testing_qa/pytest_basics/tests/test_basic.py similarity index 100% rename from 09_testing_qa/pytest_basics/tests/test_basic.py rename to modules/09_testing_qa/pytest_basics/tests/test_basic.py diff --git a/09_testing_qa/pytest_mock/README.md b/modules/09_testing_qa/pytest_mock/README.md similarity index 100% rename from 09_testing_qa/pytest_mock/README.md rename to modules/09_testing_qa/pytest_mock/README.md diff --git a/09_testing_qa/pytest_mock/examples/example_basic.py b/modules/09_testing_qa/pytest_mock/examples/example_basic.py similarity index 100% rename from 09_testing_qa/pytest_mock/examples/example_basic.py rename to modules/09_testing_qa/pytest_mock/examples/example_basic.py diff --git a/09_testing_qa/pytest_mock/exercise/exercise_01.py b/modules/09_testing_qa/pytest_mock/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/pytest_mock/exercise/exercise_01.py rename to modules/09_testing_qa/pytest_mock/exercise/exercise_01.py diff --git a/09_testing_qa/pytest_mock/references/links.md b/modules/09_testing_qa/pytest_mock/references/links.md similarity index 100% rename from 09_testing_qa/pytest_mock/references/links.md rename to modules/09_testing_qa/pytest_mock/references/links.md diff --git a/09_testing_qa/pytest_mock/tests/test_basic.py b/modules/09_testing_qa/pytest_mock/tests/test_basic.py similarity index 100% rename from 09_testing_qa/pytest_mock/tests/test_basic.py rename to modules/09_testing_qa/pytest_mock/tests/test_basic.py diff --git a/09_testing_qa/tdd_basics/README.md b/modules/09_testing_qa/tdd_basics/README.md similarity index 100% rename from 09_testing_qa/tdd_basics/README.md rename to modules/09_testing_qa/tdd_basics/README.md diff --git a/09_testing_qa/tdd_basics/examples/example_basic.py b/modules/09_testing_qa/tdd_basics/examples/example_basic.py similarity index 100% rename from 09_testing_qa/tdd_basics/examples/example_basic.py rename to modules/09_testing_qa/tdd_basics/examples/example_basic.py diff --git a/09_testing_qa/tdd_basics/exercise/exercise_01.py b/modules/09_testing_qa/tdd_basics/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/tdd_basics/exercise/exercise_01.py rename to modules/09_testing_qa/tdd_basics/exercise/exercise_01.py diff --git a/09_testing_qa/tdd_basics/references/links.md b/modules/09_testing_qa/tdd_basics/references/links.md similarity index 100% rename from 09_testing_qa/tdd_basics/references/links.md rename to modules/09_testing_qa/tdd_basics/references/links.md diff --git a/09_testing_qa/tdd_basics/tests/test_basic.py b/modules/09_testing_qa/tdd_basics/tests/test_basic.py similarity index 100% rename from 09_testing_qa/tdd_basics/tests/test_basic.py rename to modules/09_testing_qa/tdd_basics/tests/test_basic.py diff --git a/09_testing_qa/test_organization/README.md b/modules/09_testing_qa/test_organization/README.md similarity index 100% rename from 09_testing_qa/test_organization/README.md rename to modules/09_testing_qa/test_organization/README.md diff --git a/09_testing_qa/test_organization/examples/example_basic.py b/modules/09_testing_qa/test_organization/examples/example_basic.py similarity index 100% rename from 09_testing_qa/test_organization/examples/example_basic.py rename to modules/09_testing_qa/test_organization/examples/example_basic.py diff --git a/09_testing_qa/test_organization/exercise/exercise_01.py b/modules/09_testing_qa/test_organization/exercise/exercise_01.py similarity index 100% rename from 09_testing_qa/test_organization/exercise/exercise_01.py rename to modules/09_testing_qa/test_organization/exercise/exercise_01.py diff --git a/09_testing_qa/test_organization/references/links.md b/modules/09_testing_qa/test_organization/references/links.md similarity index 100% rename from 09_testing_qa/test_organization/references/links.md rename to modules/09_testing_qa/test_organization/references/links.md diff --git a/09_testing_qa/test_organization/tests/test_basic.py b/modules/09_testing_qa/test_organization/tests/test_basic.py similarity index 100% rename from 09_testing_qa/test_organization/tests/test_basic.py rename to modules/09_testing_qa/test_organization/tests/test_basic.py diff --git a/10_performance_optimization/README.md b/modules/10_performance_optimization/README.md similarity index 100% rename from 10_performance_optimization/README.md rename to modules/10_performance_optimization/README.md diff --git a/10_performance_optimization/algorithmic_complexity/README.md b/modules/10_performance_optimization/algorithmic_complexity/README.md similarity index 100% rename from 10_performance_optimization/algorithmic_complexity/README.md rename to modules/10_performance_optimization/algorithmic_complexity/README.md diff --git a/10_performance_optimization/algorithmic_complexity/examples/example_basic.py b/modules/10_performance_optimization/algorithmic_complexity/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/algorithmic_complexity/examples/example_basic.py rename to modules/10_performance_optimization/algorithmic_complexity/examples/example_basic.py diff --git a/10_performance_optimization/algorithmic_complexity/exercise/exercise_01.py b/modules/10_performance_optimization/algorithmic_complexity/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/algorithmic_complexity/exercise/exercise_01.py rename to modules/10_performance_optimization/algorithmic_complexity/exercise/exercise_01.py diff --git a/10_performance_optimization/algorithmic_complexity/references/links.md b/modules/10_performance_optimization/algorithmic_complexity/references/links.md similarity index 100% rename from 10_performance_optimization/algorithmic_complexity/references/links.md rename to modules/10_performance_optimization/algorithmic_complexity/references/links.md diff --git a/10_performance_optimization/algorithmic_complexity/tests/test_basic.py b/modules/10_performance_optimization/algorithmic_complexity/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/algorithmic_complexity/tests/test_basic.py rename to modules/10_performance_optimization/algorithmic_complexity/tests/test_basic.py diff --git a/10_performance_optimization/benchmarking_timeit/README.md b/modules/10_performance_optimization/benchmarking_timeit/README.md similarity index 100% rename from 10_performance_optimization/benchmarking_timeit/README.md rename to modules/10_performance_optimization/benchmarking_timeit/README.md diff --git a/10_performance_optimization/benchmarking_timeit/examples/example_basic.py b/modules/10_performance_optimization/benchmarking_timeit/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/benchmarking_timeit/examples/example_basic.py rename to modules/10_performance_optimization/benchmarking_timeit/examples/example_basic.py diff --git a/10_performance_optimization/benchmarking_timeit/exercise/exercise_01.py b/modules/10_performance_optimization/benchmarking_timeit/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/benchmarking_timeit/exercise/exercise_01.py rename to modules/10_performance_optimization/benchmarking_timeit/exercise/exercise_01.py diff --git a/10_performance_optimization/benchmarking_timeit/references/links.md b/modules/10_performance_optimization/benchmarking_timeit/references/links.md similarity index 100% rename from 10_performance_optimization/benchmarking_timeit/references/links.md rename to modules/10_performance_optimization/benchmarking_timeit/references/links.md diff --git a/10_performance_optimization/benchmarking_timeit/tests/test_basic.py b/modules/10_performance_optimization/benchmarking_timeit/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/benchmarking_timeit/tests/test_basic.py rename to modules/10_performance_optimization/benchmarking_timeit/tests/test_basic.py diff --git a/10_performance_optimization/caching_lru/README.md b/modules/10_performance_optimization/caching_lru/README.md similarity index 100% rename from 10_performance_optimization/caching_lru/README.md rename to modules/10_performance_optimization/caching_lru/README.md diff --git a/10_performance_optimization/caching_lru/examples/example_basic.py b/modules/10_performance_optimization/caching_lru/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/caching_lru/examples/example_basic.py rename to modules/10_performance_optimization/caching_lru/examples/example_basic.py diff --git a/10_performance_optimization/caching_lru/exercise/exercise_01.py b/modules/10_performance_optimization/caching_lru/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/caching_lru/exercise/exercise_01.py rename to modules/10_performance_optimization/caching_lru/exercise/exercise_01.py diff --git a/10_performance_optimization/caching_lru/references/links.md b/modules/10_performance_optimization/caching_lru/references/links.md similarity index 100% rename from 10_performance_optimization/caching_lru/references/links.md rename to modules/10_performance_optimization/caching_lru/references/links.md diff --git a/10_performance_optimization/caching_lru/tests/test_basic.py b/modules/10_performance_optimization/caching_lru/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/caching_lru/tests/test_basic.py rename to modules/10_performance_optimization/caching_lru/tests/test_basic.py diff --git a/10_performance_optimization/cython_basics/README.md b/modules/10_performance_optimization/cython_basics/README.md similarity index 100% rename from 10_performance_optimization/cython_basics/README.md rename to modules/10_performance_optimization/cython_basics/README.md diff --git a/10_performance_optimization/cython_basics/examples/example_basic.py b/modules/10_performance_optimization/cython_basics/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/cython_basics/examples/example_basic.py rename to modules/10_performance_optimization/cython_basics/examples/example_basic.py diff --git a/10_performance_optimization/cython_basics/exercise/exercise_01.py b/modules/10_performance_optimization/cython_basics/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/cython_basics/exercise/exercise_01.py rename to modules/10_performance_optimization/cython_basics/exercise/exercise_01.py diff --git a/10_performance_optimization/cython_basics/references/links.md b/modules/10_performance_optimization/cython_basics/references/links.md similarity index 100% rename from 10_performance_optimization/cython_basics/references/links.md rename to modules/10_performance_optimization/cython_basics/references/links.md diff --git a/10_performance_optimization/cython_basics/tests/test_basic.py b/modules/10_performance_optimization/cython_basics/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/cython_basics/tests/test_basic.py rename to modules/10_performance_optimization/cython_basics/tests/test_basic.py diff --git a/10_performance_optimization/lazy_evaluation/README.md b/modules/10_performance_optimization/lazy_evaluation/README.md similarity index 100% rename from 10_performance_optimization/lazy_evaluation/README.md rename to modules/10_performance_optimization/lazy_evaluation/README.md diff --git a/10_performance_optimization/lazy_evaluation/examples/example_basic.py b/modules/10_performance_optimization/lazy_evaluation/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/lazy_evaluation/examples/example_basic.py rename to modules/10_performance_optimization/lazy_evaluation/examples/example_basic.py diff --git a/10_performance_optimization/lazy_evaluation/exercise/exercise_01.py b/modules/10_performance_optimization/lazy_evaluation/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/lazy_evaluation/exercise/exercise_01.py rename to modules/10_performance_optimization/lazy_evaluation/exercise/exercise_01.py diff --git a/10_performance_optimization/lazy_evaluation/references/links.md b/modules/10_performance_optimization/lazy_evaluation/references/links.md similarity index 100% rename from 10_performance_optimization/lazy_evaluation/references/links.md rename to modules/10_performance_optimization/lazy_evaluation/references/links.md diff --git a/10_performance_optimization/lazy_evaluation/tests/test_basic.py b/modules/10_performance_optimization/lazy_evaluation/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/lazy_evaluation/tests/test_basic.py rename to modules/10_performance_optimization/lazy_evaluation/tests/test_basic.py diff --git a/10_performance_optimization/line_profiler/README.md b/modules/10_performance_optimization/line_profiler/README.md similarity index 100% rename from 10_performance_optimization/line_profiler/README.md rename to modules/10_performance_optimization/line_profiler/README.md diff --git a/10_performance_optimization/line_profiler/examples/example_basic.py b/modules/10_performance_optimization/line_profiler/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/line_profiler/examples/example_basic.py rename to modules/10_performance_optimization/line_profiler/examples/example_basic.py diff --git a/10_performance_optimization/line_profiler/exercise/exercise_01.py b/modules/10_performance_optimization/line_profiler/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/line_profiler/exercise/exercise_01.py rename to modules/10_performance_optimization/line_profiler/exercise/exercise_01.py diff --git a/10_performance_optimization/line_profiler/references/links.md b/modules/10_performance_optimization/line_profiler/references/links.md similarity index 100% rename from 10_performance_optimization/line_profiler/references/links.md rename to modules/10_performance_optimization/line_profiler/references/links.md diff --git a/10_performance_optimization/line_profiler/tests/test_basic.py b/modules/10_performance_optimization/line_profiler/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/line_profiler/tests/test_basic.py rename to modules/10_performance_optimization/line_profiler/tests/test_basic.py diff --git a/10_performance_optimization/memory_optimization/README.md b/modules/10_performance_optimization/memory_optimization/README.md similarity index 100% rename from 10_performance_optimization/memory_optimization/README.md rename to modules/10_performance_optimization/memory_optimization/README.md diff --git a/10_performance_optimization/memory_optimization/examples/example_basic.py b/modules/10_performance_optimization/memory_optimization/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/memory_optimization/examples/example_basic.py rename to modules/10_performance_optimization/memory_optimization/examples/example_basic.py diff --git a/10_performance_optimization/memory_optimization/exercise/exercise_01.py b/modules/10_performance_optimization/memory_optimization/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/memory_optimization/exercise/exercise_01.py rename to modules/10_performance_optimization/memory_optimization/exercise/exercise_01.py diff --git a/10_performance_optimization/memory_optimization/references/links.md b/modules/10_performance_optimization/memory_optimization/references/links.md similarity index 100% rename from 10_performance_optimization/memory_optimization/references/links.md rename to modules/10_performance_optimization/memory_optimization/references/links.md diff --git a/10_performance_optimization/memory_optimization/tests/test_basic.py b/modules/10_performance_optimization/memory_optimization/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/memory_optimization/tests/test_basic.py rename to modules/10_performance_optimization/memory_optimization/tests/test_basic.py diff --git a/10_performance_optimization/numba_jit/README.md b/modules/10_performance_optimization/numba_jit/README.md similarity index 100% rename from 10_performance_optimization/numba_jit/README.md rename to modules/10_performance_optimization/numba_jit/README.md diff --git a/10_performance_optimization/numba_jit/examples/example_basic.py b/modules/10_performance_optimization/numba_jit/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/numba_jit/examples/example_basic.py rename to modules/10_performance_optimization/numba_jit/examples/example_basic.py diff --git a/10_performance_optimization/numba_jit/exercise/exercise_01.py b/modules/10_performance_optimization/numba_jit/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/numba_jit/exercise/exercise_01.py rename to modules/10_performance_optimization/numba_jit/exercise/exercise_01.py diff --git a/10_performance_optimization/numba_jit/references/links.md b/modules/10_performance_optimization/numba_jit/references/links.md similarity index 100% rename from 10_performance_optimization/numba_jit/references/links.md rename to modules/10_performance_optimization/numba_jit/references/links.md diff --git a/10_performance_optimization/numba_jit/tests/test_basic.py b/modules/10_performance_optimization/numba_jit/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/numba_jit/tests/test_basic.py rename to modules/10_performance_optimization/numba_jit/tests/test_basic.py diff --git a/10_performance_optimization/numpy_vectorization/README.md b/modules/10_performance_optimization/numpy_vectorization/README.md similarity index 100% rename from 10_performance_optimization/numpy_vectorization/README.md rename to modules/10_performance_optimization/numpy_vectorization/README.md diff --git a/10_performance_optimization/numpy_vectorization/examples/example_basic.py b/modules/10_performance_optimization/numpy_vectorization/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/numpy_vectorization/examples/example_basic.py rename to modules/10_performance_optimization/numpy_vectorization/examples/example_basic.py diff --git a/10_performance_optimization/numpy_vectorization/exercise/exercise_01.py b/modules/10_performance_optimization/numpy_vectorization/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/numpy_vectorization/exercise/exercise_01.py rename to modules/10_performance_optimization/numpy_vectorization/exercise/exercise_01.py diff --git a/10_performance_optimization/numpy_vectorization/references/links.md b/modules/10_performance_optimization/numpy_vectorization/references/links.md similarity index 100% rename from 10_performance_optimization/numpy_vectorization/references/links.md rename to modules/10_performance_optimization/numpy_vectorization/references/links.md diff --git a/10_performance_optimization/numpy_vectorization/tests/test_basic.py b/modules/10_performance_optimization/numpy_vectorization/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/numpy_vectorization/tests/test_basic.py rename to modules/10_performance_optimization/numpy_vectorization/tests/test_basic.py diff --git a/10_performance_optimization/optimization_techniques/README.md b/modules/10_performance_optimization/optimization_techniques/README.md similarity index 100% rename from 10_performance_optimization/optimization_techniques/README.md rename to modules/10_performance_optimization/optimization_techniques/README.md diff --git a/10_performance_optimization/optimization_techniques/examples/example_basic.py b/modules/10_performance_optimization/optimization_techniques/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/optimization_techniques/examples/example_basic.py rename to modules/10_performance_optimization/optimization_techniques/examples/example_basic.py diff --git a/10_performance_optimization/optimization_techniques/exercise/exercise_01.py b/modules/10_performance_optimization/optimization_techniques/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/optimization_techniques/exercise/exercise_01.py rename to modules/10_performance_optimization/optimization_techniques/exercise/exercise_01.py diff --git a/10_performance_optimization/optimization_techniques/references/links.md b/modules/10_performance_optimization/optimization_techniques/references/links.md similarity index 100% rename from 10_performance_optimization/optimization_techniques/references/links.md rename to modules/10_performance_optimization/optimization_techniques/references/links.md diff --git a/10_performance_optimization/optimization_techniques/tests/test_basic.py b/modules/10_performance_optimization/optimization_techniques/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/optimization_techniques/tests/test_basic.py rename to modules/10_performance_optimization/optimization_techniques/tests/test_basic.py diff --git a/10_performance_optimization/profiling_cprofile/README.md b/modules/10_performance_optimization/profiling_cprofile/README.md similarity index 100% rename from 10_performance_optimization/profiling_cprofile/README.md rename to modules/10_performance_optimization/profiling_cprofile/README.md diff --git a/10_performance_optimization/profiling_cprofile/examples/example_basic.py b/modules/10_performance_optimization/profiling_cprofile/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/profiling_cprofile/examples/example_basic.py rename to modules/10_performance_optimization/profiling_cprofile/examples/example_basic.py diff --git a/10_performance_optimization/profiling_cprofile/exercise/exercise_01.py b/modules/10_performance_optimization/profiling_cprofile/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/profiling_cprofile/exercise/exercise_01.py rename to modules/10_performance_optimization/profiling_cprofile/exercise/exercise_01.py diff --git a/10_performance_optimization/profiling_cprofile/references/links.md b/modules/10_performance_optimization/profiling_cprofile/references/links.md similarity index 100% rename from 10_performance_optimization/profiling_cprofile/references/links.md rename to modules/10_performance_optimization/profiling_cprofile/references/links.md diff --git a/10_performance_optimization/profiling_cprofile/tests/test_basic.py b/modules/10_performance_optimization/profiling_cprofile/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/profiling_cprofile/tests/test_basic.py rename to modules/10_performance_optimization/profiling_cprofile/tests/test_basic.py diff --git a/10_performance_optimization/pypy_intro/README.md b/modules/10_performance_optimization/pypy_intro/README.md similarity index 100% rename from 10_performance_optimization/pypy_intro/README.md rename to modules/10_performance_optimization/pypy_intro/README.md diff --git a/10_performance_optimization/pypy_intro/examples/example_basic.py b/modules/10_performance_optimization/pypy_intro/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/pypy_intro/examples/example_basic.py rename to modules/10_performance_optimization/pypy_intro/examples/example_basic.py diff --git a/10_performance_optimization/pypy_intro/exercise/exercise_01.py b/modules/10_performance_optimization/pypy_intro/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/pypy_intro/exercise/exercise_01.py rename to modules/10_performance_optimization/pypy_intro/exercise/exercise_01.py diff --git a/10_performance_optimization/pypy_intro/references/links.md b/modules/10_performance_optimization/pypy_intro/references/links.md similarity index 100% rename from 10_performance_optimization/pypy_intro/references/links.md rename to modules/10_performance_optimization/pypy_intro/references/links.md diff --git a/10_performance_optimization/pypy_intro/tests/test_basic.py b/modules/10_performance_optimization/pypy_intro/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/pypy_intro/tests/test_basic.py rename to modules/10_performance_optimization/pypy_intro/tests/test_basic.py diff --git a/10_performance_optimization/pyspy_profiling/README.md b/modules/10_performance_optimization/pyspy_profiling/README.md similarity index 100% rename from 10_performance_optimization/pyspy_profiling/README.md rename to modules/10_performance_optimization/pyspy_profiling/README.md diff --git a/10_performance_optimization/pyspy_profiling/examples/example_basic.py b/modules/10_performance_optimization/pyspy_profiling/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/pyspy_profiling/examples/example_basic.py rename to modules/10_performance_optimization/pyspy_profiling/examples/example_basic.py diff --git a/10_performance_optimization/pyspy_profiling/exercise/exercise_01.py b/modules/10_performance_optimization/pyspy_profiling/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/pyspy_profiling/exercise/exercise_01.py rename to modules/10_performance_optimization/pyspy_profiling/exercise/exercise_01.py diff --git a/10_performance_optimization/pyspy_profiling/references/links.md b/modules/10_performance_optimization/pyspy_profiling/references/links.md similarity index 100% rename from 10_performance_optimization/pyspy_profiling/references/links.md rename to modules/10_performance_optimization/pyspy_profiling/references/links.md diff --git a/10_performance_optimization/pyspy_profiling/tests/test_basic.py b/modules/10_performance_optimization/pyspy_profiling/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/pyspy_profiling/tests/test_basic.py rename to modules/10_performance_optimization/pyspy_profiling/tests/test_basic.py diff --git a/10_performance_optimization/pytest_benchmark/README.md b/modules/10_performance_optimization/pytest_benchmark/README.md similarity index 100% rename from 10_performance_optimization/pytest_benchmark/README.md rename to modules/10_performance_optimization/pytest_benchmark/README.md diff --git a/10_performance_optimization/pytest_benchmark/examples/example_basic.py b/modules/10_performance_optimization/pytest_benchmark/examples/example_basic.py similarity index 100% rename from 10_performance_optimization/pytest_benchmark/examples/example_basic.py rename to modules/10_performance_optimization/pytest_benchmark/examples/example_basic.py diff --git a/10_performance_optimization/pytest_benchmark/exercise/exercise_01.py b/modules/10_performance_optimization/pytest_benchmark/exercise/exercise_01.py similarity index 100% rename from 10_performance_optimization/pytest_benchmark/exercise/exercise_01.py rename to modules/10_performance_optimization/pytest_benchmark/exercise/exercise_01.py diff --git a/10_performance_optimization/pytest_benchmark/references/links.md b/modules/10_performance_optimization/pytest_benchmark/references/links.md similarity index 100% rename from 10_performance_optimization/pytest_benchmark/references/links.md rename to modules/10_performance_optimization/pytest_benchmark/references/links.md diff --git a/10_performance_optimization/pytest_benchmark/tests/test_basic.py b/modules/10_performance_optimization/pytest_benchmark/tests/test_basic.py similarity index 100% rename from 10_performance_optimization/pytest_benchmark/tests/test_basic.py rename to modules/10_performance_optimization/pytest_benchmark/tests/test_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction/README.md b/modules/11_modern_tooling_2026/01_uv_introduction/README.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/README.md rename to modules/11_modern_tooling_2026/01_uv_introduction/README.md diff --git a/11_modern_tooling_2026/01_uv_introduction/examples/benchmark_basic.py b/modules/11_modern_tooling_2026/01_uv_introduction/examples/benchmark_basic.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/examples/benchmark_basic.py rename to modules/11_modern_tooling_2026/01_uv_introduction/examples/benchmark_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction/examples/example_basic.py b/modules/11_modern_tooling_2026/01_uv_introduction/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/examples/example_basic.py rename to modules/11_modern_tooling_2026/01_uv_introduction/examples/example_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction/exercise/basic_exercise.py b/modules/11_modern_tooling_2026/01_uv_introduction/exercise/basic_exercise.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/exercise/basic_exercise.py rename to modules/11_modern_tooling_2026/01_uv_introduction/exercise/basic_exercise.py diff --git a/11_modern_tooling_2026/01_uv_introduction/exercise/exercise_01.py b/modules/11_modern_tooling_2026/01_uv_introduction/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/01_uv_introduction/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/01_uv_introduction/references/links.md b/modules/11_modern_tooling_2026/01_uv_introduction/references/links.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/references/links.md rename to modules/11_modern_tooling_2026/01_uv_introduction/references/links.md diff --git a/11_modern_tooling_2026/01_uv_introduction/tests/test_basic.py b/modules/11_modern_tooling_2026/01_uv_introduction/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction/tests/test_basic.py rename to modules/11_modern_tooling_2026/01_uv_introduction/tests/test_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/README.md b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/README.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/README.md rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/README.md diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/examples/01_speed_comparison.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/01_speed_comparison.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/examples/01_speed_comparison.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/01_speed_comparison.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/examples/02_cache_architecture.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/02_cache_architecture.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/examples/02_cache_architecture.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/02_cache_architecture.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/examples/example_basic.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/examples/example_basic.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/examples/example_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.md b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.md rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.md diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_02.md b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_02.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_02.md rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/exercise/exercise_02.md diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/references/links.md b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/references/links.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/references/links.md rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/references/links.md diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/references/references.md b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/references/references.md similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/references/references.md rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/references/references.md diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_basic.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_basic.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_basic.py diff --git a/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_uv_basics.py b/modules/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_uv_basics.py similarity index 100% rename from 11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_uv_basics.py rename to modules/11_modern_tooling_2026/01_uv_introduction_architecture/tests/test_uv_basics.py diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/README.md b/modules/11_modern_tooling_2026/02_uv_installation_configuration/README.md similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/README.md rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/README.md diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/examples/01_installation_verification.py b/modules/11_modern_tooling_2026/02_uv_installation_configuration/examples/01_installation_verification.py similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/examples/01_installation_verification.py rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/examples/01_installation_verification.py diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/examples/example_basic.py b/modules/11_modern_tooling_2026/02_uv_installation_configuration/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/examples/example_basic.py rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/examples/example_basic.py diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/exercise/exercise_01.py b/modules/11_modern_tooling_2026/02_uv_installation_configuration/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/references/links.md b/modules/11_modern_tooling_2026/02_uv_installation_configuration/references/links.md similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/references/links.md rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/references/links.md diff --git a/11_modern_tooling_2026/02_uv_installation_configuration/tests/test_basic.py b/modules/11_modern_tooling_2026/02_uv_installation_configuration/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/02_uv_installation_configuration/tests/test_basic.py rename to modules/11_modern_tooling_2026/02_uv_installation_configuration/tests/test_basic.py diff --git a/11_modern_tooling_2026/03_uv_pip_package_installation/README.md b/modules/11_modern_tooling_2026/03_uv_pip_package_installation/README.md similarity index 100% rename from 11_modern_tooling_2026/03_uv_pip_package_installation/README.md rename to modules/11_modern_tooling_2026/03_uv_pip_package_installation/README.md diff --git a/11_modern_tooling_2026/03_uv_pip_package_installation/examples/example_basic.py b/modules/11_modern_tooling_2026/03_uv_pip_package_installation/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/03_uv_pip_package_installation/examples/example_basic.py rename to modules/11_modern_tooling_2026/03_uv_pip_package_installation/examples/example_basic.py diff --git a/11_modern_tooling_2026/03_uv_pip_package_installation/exercise/exercise_01.py b/modules/11_modern_tooling_2026/03_uv_pip_package_installation/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/03_uv_pip_package_installation/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/03_uv_pip_package_installation/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/03_uv_pip_package_installation/references/links.md b/modules/11_modern_tooling_2026/03_uv_pip_package_installation/references/links.md similarity index 100% rename from 11_modern_tooling_2026/03_uv_pip_package_installation/references/links.md rename to modules/11_modern_tooling_2026/03_uv_pip_package_installation/references/links.md diff --git a/11_modern_tooling_2026/03_uv_pip_package_installation/tests/test_basic.py b/modules/11_modern_tooling_2026/03_uv_pip_package_installation/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/03_uv_pip_package_installation/tests/test_basic.py rename to modules/11_modern_tooling_2026/03_uv_pip_package_installation/tests/test_basic.py diff --git a/11_modern_tooling_2026/04_uv_venv_virtual_environments/README.md b/modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/README.md similarity index 100% rename from 11_modern_tooling_2026/04_uv_venv_virtual_environments/README.md rename to modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/README.md diff --git a/11_modern_tooling_2026/04_uv_venv_virtual_environments/examples/example_basic.py b/modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/04_uv_venv_virtual_environments/examples/example_basic.py rename to modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/examples/example_basic.py diff --git a/11_modern_tooling_2026/04_uv_venv_virtual_environments/exercise/exercise_01.py b/modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/04_uv_venv_virtual_environments/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/04_uv_venv_virtual_environments/references/links.md b/modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/references/links.md similarity index 100% rename from 11_modern_tooling_2026/04_uv_venv_virtual_environments/references/links.md rename to modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/references/links.md diff --git a/11_modern_tooling_2026/04_uv_venv_virtual_environments/tests/test_basic.py b/modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/04_uv_venv_virtual_environments/tests/test_basic.py rename to modules/11_modern_tooling_2026/04_uv_venv_virtual_environments/tests/test_basic.py diff --git a/11_modern_tooling_2026/05_uv_tool_global_tools/README.md b/modules/11_modern_tooling_2026/05_uv_tool_global_tools/README.md similarity index 100% rename from 11_modern_tooling_2026/05_uv_tool_global_tools/README.md rename to modules/11_modern_tooling_2026/05_uv_tool_global_tools/README.md diff --git a/11_modern_tooling_2026/05_uv_tool_global_tools/examples/example_basic.py b/modules/11_modern_tooling_2026/05_uv_tool_global_tools/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/05_uv_tool_global_tools/examples/example_basic.py rename to modules/11_modern_tooling_2026/05_uv_tool_global_tools/examples/example_basic.py diff --git a/11_modern_tooling_2026/05_uv_tool_global_tools/exercise/exercise_01.py b/modules/11_modern_tooling_2026/05_uv_tool_global_tools/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/05_uv_tool_global_tools/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/05_uv_tool_global_tools/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/05_uv_tool_global_tools/references/links.md b/modules/11_modern_tooling_2026/05_uv_tool_global_tools/references/links.md similarity index 100% rename from 11_modern_tooling_2026/05_uv_tool_global_tools/references/links.md rename to modules/11_modern_tooling_2026/05_uv_tool_global_tools/references/links.md diff --git a/11_modern_tooling_2026/05_uv_tool_global_tools/tests/test_basic.py b/modules/11_modern_tooling_2026/05_uv_tool_global_tools/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/05_uv_tool_global_tools/tests/test_basic.py rename to modules/11_modern_tooling_2026/05_uv_tool_global_tools/tests/test_basic.py diff --git a/11_modern_tooling_2026/06_uv_pyproject_toml/README.md b/modules/11_modern_tooling_2026/06_uv_pyproject_toml/README.md similarity index 100% rename from 11_modern_tooling_2026/06_uv_pyproject_toml/README.md rename to modules/11_modern_tooling_2026/06_uv_pyproject_toml/README.md diff --git a/11_modern_tooling_2026/06_uv_pyproject_toml/examples/example_basic.py b/modules/11_modern_tooling_2026/06_uv_pyproject_toml/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/06_uv_pyproject_toml/examples/example_basic.py rename to modules/11_modern_tooling_2026/06_uv_pyproject_toml/examples/example_basic.py diff --git a/11_modern_tooling_2026/06_uv_pyproject_toml/exercise/exercise_01.py b/modules/11_modern_tooling_2026/06_uv_pyproject_toml/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/06_uv_pyproject_toml/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/06_uv_pyproject_toml/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/06_uv_pyproject_toml/references/links.md b/modules/11_modern_tooling_2026/06_uv_pyproject_toml/references/links.md similarity index 100% rename from 11_modern_tooling_2026/06_uv_pyproject_toml/references/links.md rename to modules/11_modern_tooling_2026/06_uv_pyproject_toml/references/links.md diff --git a/11_modern_tooling_2026/06_uv_pyproject_toml/tests/test_basic.py b/modules/11_modern_tooling_2026/06_uv_pyproject_toml/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/06_uv_pyproject_toml/tests/test_basic.py rename to modules/11_modern_tooling_2026/06_uv_pyproject_toml/tests/test_basic.py diff --git a/11_modern_tooling_2026/07_uv_lock_files/README.md b/modules/11_modern_tooling_2026/07_uv_lock_files/README.md similarity index 100% rename from 11_modern_tooling_2026/07_uv_lock_files/README.md rename to modules/11_modern_tooling_2026/07_uv_lock_files/README.md diff --git a/11_modern_tooling_2026/07_uv_lock_files/examples/example_basic.py b/modules/11_modern_tooling_2026/07_uv_lock_files/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/07_uv_lock_files/examples/example_basic.py rename to modules/11_modern_tooling_2026/07_uv_lock_files/examples/example_basic.py diff --git a/11_modern_tooling_2026/07_uv_lock_files/exercise/exercise_01.py b/modules/11_modern_tooling_2026/07_uv_lock_files/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/07_uv_lock_files/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/07_uv_lock_files/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/07_uv_lock_files/references/links.md b/modules/11_modern_tooling_2026/07_uv_lock_files/references/links.md similarity index 100% rename from 11_modern_tooling_2026/07_uv_lock_files/references/links.md rename to modules/11_modern_tooling_2026/07_uv_lock_files/references/links.md diff --git a/11_modern_tooling_2026/07_uv_lock_files/tests/test_basic.py b/modules/11_modern_tooling_2026/07_uv_lock_files/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/07_uv_lock_files/tests/test_basic.py rename to modules/11_modern_tooling_2026/07_uv_lock_files/tests/test_basic.py diff --git a/11_modern_tooling_2026/08_uv_workspaces_monorepos/README.md b/modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/README.md similarity index 100% rename from 11_modern_tooling_2026/08_uv_workspaces_monorepos/README.md rename to modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/README.md diff --git a/11_modern_tooling_2026/08_uv_workspaces_monorepos/examples/example_basic.py b/modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/08_uv_workspaces_monorepos/examples/example_basic.py rename to modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/examples/example_basic.py diff --git a/11_modern_tooling_2026/08_uv_workspaces_monorepos/exercise/exercise_01.py b/modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/08_uv_workspaces_monorepos/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/08_uv_workspaces_monorepos/references/links.md b/modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/references/links.md similarity index 100% rename from 11_modern_tooling_2026/08_uv_workspaces_monorepos/references/links.md rename to modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/references/links.md diff --git a/11_modern_tooling_2026/08_uv_workspaces_monorepos/tests/test_basic.py b/modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/08_uv_workspaces_monorepos/tests/test_basic.py rename to modules/11_modern_tooling_2026/08_uv_workspaces_monorepos/tests/test_basic.py diff --git a/11_modern_tooling_2026/09_uv_scripts_entry_points/README.md b/modules/11_modern_tooling_2026/09_uv_scripts_entry_points/README.md similarity index 100% rename from 11_modern_tooling_2026/09_uv_scripts_entry_points/README.md rename to modules/11_modern_tooling_2026/09_uv_scripts_entry_points/README.md diff --git a/11_modern_tooling_2026/09_uv_scripts_entry_points/examples/example_basic.py b/modules/11_modern_tooling_2026/09_uv_scripts_entry_points/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/09_uv_scripts_entry_points/examples/example_basic.py rename to modules/11_modern_tooling_2026/09_uv_scripts_entry_points/examples/example_basic.py diff --git a/11_modern_tooling_2026/09_uv_scripts_entry_points/exercise/exercise_01.py b/modules/11_modern_tooling_2026/09_uv_scripts_entry_points/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/09_uv_scripts_entry_points/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/09_uv_scripts_entry_points/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/09_uv_scripts_entry_points/references/links.md b/modules/11_modern_tooling_2026/09_uv_scripts_entry_points/references/links.md similarity index 100% rename from 11_modern_tooling_2026/09_uv_scripts_entry_points/references/links.md rename to modules/11_modern_tooling_2026/09_uv_scripts_entry_points/references/links.md diff --git a/11_modern_tooling_2026/09_uv_scripts_entry_points/tests/test_basic.py b/modules/11_modern_tooling_2026/09_uv_scripts_entry_points/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/09_uv_scripts_entry_points/tests/test_basic.py rename to modules/11_modern_tooling_2026/09_uv_scripts_entry_points/tests/test_basic.py diff --git a/11_modern_tooling_2026/10_ruff_introduction_speed/README.md b/modules/11_modern_tooling_2026/10_ruff_introduction_speed/README.md similarity index 100% rename from 11_modern_tooling_2026/10_ruff_introduction_speed/README.md rename to modules/11_modern_tooling_2026/10_ruff_introduction_speed/README.md diff --git a/11_modern_tooling_2026/10_ruff_introduction_speed/examples/example_basic.py b/modules/11_modern_tooling_2026/10_ruff_introduction_speed/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/10_ruff_introduction_speed/examples/example_basic.py rename to modules/11_modern_tooling_2026/10_ruff_introduction_speed/examples/example_basic.py diff --git a/11_modern_tooling_2026/10_ruff_introduction_speed/exercise/exercise_01.py b/modules/11_modern_tooling_2026/10_ruff_introduction_speed/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/10_ruff_introduction_speed/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/10_ruff_introduction_speed/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/10_ruff_introduction_speed/references/links.md b/modules/11_modern_tooling_2026/10_ruff_introduction_speed/references/links.md similarity index 100% rename from 11_modern_tooling_2026/10_ruff_introduction_speed/references/links.md rename to modules/11_modern_tooling_2026/10_ruff_introduction_speed/references/links.md diff --git a/11_modern_tooling_2026/10_ruff_introduction_speed/tests/test_basic.py b/modules/11_modern_tooling_2026/10_ruff_introduction_speed/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/10_ruff_introduction_speed/tests/test_basic.py rename to modules/11_modern_tooling_2026/10_ruff_introduction_speed/tests/test_basic.py diff --git a/11_modern_tooling_2026/11_ruff_linter_rules/README.md b/modules/11_modern_tooling_2026/11_ruff_linter_rules/README.md similarity index 100% rename from 11_modern_tooling_2026/11_ruff_linter_rules/README.md rename to modules/11_modern_tooling_2026/11_ruff_linter_rules/README.md diff --git a/11_modern_tooling_2026/11_ruff_linter_rules/examples/example_basic.py b/modules/11_modern_tooling_2026/11_ruff_linter_rules/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/11_ruff_linter_rules/examples/example_basic.py rename to modules/11_modern_tooling_2026/11_ruff_linter_rules/examples/example_basic.py diff --git a/11_modern_tooling_2026/11_ruff_linter_rules/exercise/exercise_01.py b/modules/11_modern_tooling_2026/11_ruff_linter_rules/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/11_ruff_linter_rules/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/11_ruff_linter_rules/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/11_ruff_linter_rules/references/links.md b/modules/11_modern_tooling_2026/11_ruff_linter_rules/references/links.md similarity index 100% rename from 11_modern_tooling_2026/11_ruff_linter_rules/references/links.md rename to modules/11_modern_tooling_2026/11_ruff_linter_rules/references/links.md diff --git a/11_modern_tooling_2026/11_ruff_linter_rules/tests/test_basic.py b/modules/11_modern_tooling_2026/11_ruff_linter_rules/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/11_ruff_linter_rules/tests/test_basic.py rename to modules/11_modern_tooling_2026/11_ruff_linter_rules/tests/test_basic.py diff --git a/11_modern_tooling_2026/12_ruff_formatter_black/README.md b/modules/11_modern_tooling_2026/12_ruff_formatter_black/README.md similarity index 100% rename from 11_modern_tooling_2026/12_ruff_formatter_black/README.md rename to modules/11_modern_tooling_2026/12_ruff_formatter_black/README.md diff --git a/11_modern_tooling_2026/12_ruff_formatter_black/examples/example_basic.py b/modules/11_modern_tooling_2026/12_ruff_formatter_black/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/12_ruff_formatter_black/examples/example_basic.py rename to modules/11_modern_tooling_2026/12_ruff_formatter_black/examples/example_basic.py diff --git a/11_modern_tooling_2026/12_ruff_formatter_black/exercise/exercise_01.py b/modules/11_modern_tooling_2026/12_ruff_formatter_black/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/12_ruff_formatter_black/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/12_ruff_formatter_black/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/12_ruff_formatter_black/references/links.md b/modules/11_modern_tooling_2026/12_ruff_formatter_black/references/links.md similarity index 100% rename from 11_modern_tooling_2026/12_ruff_formatter_black/references/links.md rename to modules/11_modern_tooling_2026/12_ruff_formatter_black/references/links.md diff --git a/11_modern_tooling_2026/12_ruff_formatter_black/tests/test_basic.py b/modules/11_modern_tooling_2026/12_ruff_formatter_black/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/12_ruff_formatter_black/tests/test_basic.py rename to modules/11_modern_tooling_2026/12_ruff_formatter_black/tests/test_basic.py diff --git a/11_modern_tooling_2026/13_ruff_import_sorter_isort/README.md b/modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/README.md similarity index 100% rename from 11_modern_tooling_2026/13_ruff_import_sorter_isort/README.md rename to modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/README.md diff --git a/11_modern_tooling_2026/13_ruff_import_sorter_isort/examples/example_basic.py b/modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/13_ruff_import_sorter_isort/examples/example_basic.py rename to modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/examples/example_basic.py diff --git a/11_modern_tooling_2026/13_ruff_import_sorter_isort/exercise/exercise_01.py b/modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/13_ruff_import_sorter_isort/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/13_ruff_import_sorter_isort/references/links.md b/modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/references/links.md similarity index 100% rename from 11_modern_tooling_2026/13_ruff_import_sorter_isort/references/links.md rename to modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/references/links.md diff --git a/11_modern_tooling_2026/13_ruff_import_sorter_isort/tests/test_basic.py b/modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/13_ruff_import_sorter_isort/tests/test_basic.py rename to modules/11_modern_tooling_2026/13_ruff_import_sorter_isort/tests/test_basic.py diff --git a/11_modern_tooling_2026/14_ruff_pyproject_configuration/README.md b/modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/README.md similarity index 100% rename from 11_modern_tooling_2026/14_ruff_pyproject_configuration/README.md rename to modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/README.md diff --git a/11_modern_tooling_2026/14_ruff_pyproject_configuration/examples/example_basic.py b/modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/14_ruff_pyproject_configuration/examples/example_basic.py rename to modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/examples/example_basic.py diff --git a/11_modern_tooling_2026/14_ruff_pyproject_configuration/exercise/exercise_01.py b/modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/14_ruff_pyproject_configuration/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/14_ruff_pyproject_configuration/references/links.md b/modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/references/links.md similarity index 100% rename from 11_modern_tooling_2026/14_ruff_pyproject_configuration/references/links.md rename to modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/references/links.md diff --git a/11_modern_tooling_2026/14_ruff_pyproject_configuration/tests/test_basic.py b/modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/14_ruff_pyproject_configuration/tests/test_basic.py rename to modules/11_modern_tooling_2026/14_ruff_pyproject_configuration/tests/test_basic.py diff --git a/11_modern_tooling_2026/15_ruff_strict_rules/README.md b/modules/11_modern_tooling_2026/15_ruff_strict_rules/README.md similarity index 100% rename from 11_modern_tooling_2026/15_ruff_strict_rules/README.md rename to modules/11_modern_tooling_2026/15_ruff_strict_rules/README.md diff --git a/11_modern_tooling_2026/15_ruff_strict_rules/examples/example_basic.py b/modules/11_modern_tooling_2026/15_ruff_strict_rules/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/15_ruff_strict_rules/examples/example_basic.py rename to modules/11_modern_tooling_2026/15_ruff_strict_rules/examples/example_basic.py diff --git a/11_modern_tooling_2026/15_ruff_strict_rules/exercise/exercise_01.py b/modules/11_modern_tooling_2026/15_ruff_strict_rules/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/15_ruff_strict_rules/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/15_ruff_strict_rules/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/15_ruff_strict_rules/references/links.md b/modules/11_modern_tooling_2026/15_ruff_strict_rules/references/links.md similarity index 100% rename from 11_modern_tooling_2026/15_ruff_strict_rules/references/links.md rename to modules/11_modern_tooling_2026/15_ruff_strict_rules/references/links.md diff --git a/11_modern_tooling_2026/15_ruff_strict_rules/tests/test_basic.py b/modules/11_modern_tooling_2026/15_ruff_strict_rules/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/15_ruff_strict_rules/tests/test_basic.py rename to modules/11_modern_tooling_2026/15_ruff_strict_rules/tests/test_basic.py diff --git a/11_modern_tooling_2026/16_ruff_performance_benchmarks/README.md b/modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/README.md similarity index 100% rename from 11_modern_tooling_2026/16_ruff_performance_benchmarks/README.md rename to modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/README.md diff --git a/11_modern_tooling_2026/16_ruff_performance_benchmarks/examples/example_basic.py b/modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/16_ruff_performance_benchmarks/examples/example_basic.py rename to modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/examples/example_basic.py diff --git a/11_modern_tooling_2026/16_ruff_performance_benchmarks/exercise/exercise_01.py b/modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/16_ruff_performance_benchmarks/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/16_ruff_performance_benchmarks/references/links.md b/modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/references/links.md similarity index 100% rename from 11_modern_tooling_2026/16_ruff_performance_benchmarks/references/links.md rename to modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/references/links.md diff --git a/11_modern_tooling_2026/16_ruff_performance_benchmarks/tests/test_basic.py b/modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/16_ruff_performance_benchmarks/tests/test_basic.py rename to modules/11_modern_tooling_2026/16_ruff_performance_benchmarks/tests/test_basic.py diff --git a/11_modern_tooling_2026/17_ruff_workflow_integration/README.md b/modules/11_modern_tooling_2026/17_ruff_workflow_integration/README.md similarity index 100% rename from 11_modern_tooling_2026/17_ruff_workflow_integration/README.md rename to modules/11_modern_tooling_2026/17_ruff_workflow_integration/README.md diff --git a/11_modern_tooling_2026/17_ruff_workflow_integration/examples/example_basic.py b/modules/11_modern_tooling_2026/17_ruff_workflow_integration/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/17_ruff_workflow_integration/examples/example_basic.py rename to modules/11_modern_tooling_2026/17_ruff_workflow_integration/examples/example_basic.py diff --git a/11_modern_tooling_2026/17_ruff_workflow_integration/exercise/exercise_01.py b/modules/11_modern_tooling_2026/17_ruff_workflow_integration/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/17_ruff_workflow_integration/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/17_ruff_workflow_integration/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/17_ruff_workflow_integration/references/links.md b/modules/11_modern_tooling_2026/17_ruff_workflow_integration/references/links.md similarity index 100% rename from 11_modern_tooling_2026/17_ruff_workflow_integration/references/links.md rename to modules/11_modern_tooling_2026/17_ruff_workflow_integration/references/links.md diff --git a/11_modern_tooling_2026/17_ruff_workflow_integration/tests/test_basic.py b/modules/11_modern_tooling_2026/17_ruff_workflow_integration/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/17_ruff_workflow_integration/tests/test_basic.py rename to modules/11_modern_tooling_2026/17_ruff_workflow_integration/tests/test_basic.py diff --git a/11_modern_tooling_2026/18_mypy_current_state_2026/README.md b/modules/11_modern_tooling_2026/18_mypy_current_state_2026/README.md similarity index 100% rename from 11_modern_tooling_2026/18_mypy_current_state_2026/README.md rename to modules/11_modern_tooling_2026/18_mypy_current_state_2026/README.md diff --git a/11_modern_tooling_2026/18_mypy_current_state_2026/examples/example_basic.py b/modules/11_modern_tooling_2026/18_mypy_current_state_2026/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/18_mypy_current_state_2026/examples/example_basic.py rename to modules/11_modern_tooling_2026/18_mypy_current_state_2026/examples/example_basic.py diff --git a/11_modern_tooling_2026/18_mypy_current_state_2026/exercise/exercise_01.py b/modules/11_modern_tooling_2026/18_mypy_current_state_2026/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/18_mypy_current_state_2026/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/18_mypy_current_state_2026/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/18_mypy_current_state_2026/references/links.md b/modules/11_modern_tooling_2026/18_mypy_current_state_2026/references/links.md similarity index 100% rename from 11_modern_tooling_2026/18_mypy_current_state_2026/references/links.md rename to modules/11_modern_tooling_2026/18_mypy_current_state_2026/references/links.md diff --git a/11_modern_tooling_2026/18_mypy_current_state_2026/tests/test_basic.py b/modules/11_modern_tooling_2026/18_mypy_current_state_2026/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/18_mypy_current_state_2026/tests/test_basic.py rename to modules/11_modern_tooling_2026/18_mypy_current_state_2026/tests/test_basic.py diff --git a/11_modern_tooling_2026/19_pyright_basedpyright/README.md b/modules/11_modern_tooling_2026/19_pyright_basedpyright/README.md similarity index 100% rename from 11_modern_tooling_2026/19_pyright_basedpyright/README.md rename to modules/11_modern_tooling_2026/19_pyright_basedpyright/README.md diff --git a/11_modern_tooling_2026/19_pyright_basedpyright/examples/example_basic.py b/modules/11_modern_tooling_2026/19_pyright_basedpyright/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/19_pyright_basedpyright/examples/example_basic.py rename to modules/11_modern_tooling_2026/19_pyright_basedpyright/examples/example_basic.py diff --git a/11_modern_tooling_2026/19_pyright_basedpyright/exercise/exercise_01.py b/modules/11_modern_tooling_2026/19_pyright_basedpyright/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/19_pyright_basedpyright/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/19_pyright_basedpyright/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/19_pyright_basedpyright/references/links.md b/modules/11_modern_tooling_2026/19_pyright_basedpyright/references/links.md similarity index 100% rename from 11_modern_tooling_2026/19_pyright_basedpyright/references/links.md rename to modules/11_modern_tooling_2026/19_pyright_basedpyright/references/links.md diff --git a/11_modern_tooling_2026/19_pyright_basedpyright/tests/test_basic.py b/modules/11_modern_tooling_2026/19_pyright_basedpyright/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/19_pyright_basedpyright/tests/test_basic.py rename to modules/11_modern_tooling_2026/19_pyright_basedpyright/tests/test_basic.py diff --git a/11_modern_tooling_2026/20_pylyzer_type_checker_rust/README.md b/modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/README.md similarity index 100% rename from 11_modern_tooling_2026/20_pylyzer_type_checker_rust/README.md rename to modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/README.md diff --git a/11_modern_tooling_2026/20_pylyzer_type_checker_rust/examples/example_basic.py b/modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/20_pylyzer_type_checker_rust/examples/example_basic.py rename to modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/examples/example_basic.py diff --git a/11_modern_tooling_2026/20_pylyzer_type_checker_rust/exercise/exercise_01.py b/modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/20_pylyzer_type_checker_rust/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/20_pylyzer_type_checker_rust/references/links.md b/modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/references/links.md similarity index 100% rename from 11_modern_tooling_2026/20_pylyzer_type_checker_rust/references/links.md rename to modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/references/links.md diff --git a/11_modern_tooling_2026/20_pylyzer_type_checker_rust/tests/test_basic.py b/modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/20_pylyzer_type_checker_rust/tests/test_basic.py rename to modules/11_modern_tooling_2026/20_pylyzer_type_checker_rust/tests/test_basic.py diff --git a/11_modern_tooling_2026/21_type_checkers_comparison/README.md b/modules/11_modern_tooling_2026/21_type_checkers_comparison/README.md similarity index 100% rename from 11_modern_tooling_2026/21_type_checkers_comparison/README.md rename to modules/11_modern_tooling_2026/21_type_checkers_comparison/README.md diff --git a/11_modern_tooling_2026/21_type_checkers_comparison/examples/example_basic.py b/modules/11_modern_tooling_2026/21_type_checkers_comparison/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/21_type_checkers_comparison/examples/example_basic.py rename to modules/11_modern_tooling_2026/21_type_checkers_comparison/examples/example_basic.py diff --git a/11_modern_tooling_2026/21_type_checkers_comparison/exercise/exercise_01.py b/modules/11_modern_tooling_2026/21_type_checkers_comparison/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/21_type_checkers_comparison/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/21_type_checkers_comparison/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/21_type_checkers_comparison/references/links.md b/modules/11_modern_tooling_2026/21_type_checkers_comparison/references/links.md similarity index 100% rename from 11_modern_tooling_2026/21_type_checkers_comparison/references/links.md rename to modules/11_modern_tooling_2026/21_type_checkers_comparison/references/links.md diff --git a/11_modern_tooling_2026/21_type_checkers_comparison/tests/test_basic.py b/modules/11_modern_tooling_2026/21_type_checkers_comparison/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/21_type_checkers_comparison/tests/test_basic.py rename to modules/11_modern_tooling_2026/21_type_checkers_comparison/tests/test_basic.py diff --git a/11_modern_tooling_2026/22_strict_typing_configuration/README.md b/modules/11_modern_tooling_2026/22_strict_typing_configuration/README.md similarity index 100% rename from 11_modern_tooling_2026/22_strict_typing_configuration/README.md rename to modules/11_modern_tooling_2026/22_strict_typing_configuration/README.md diff --git a/11_modern_tooling_2026/22_strict_typing_configuration/examples/example_basic.py b/modules/11_modern_tooling_2026/22_strict_typing_configuration/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/22_strict_typing_configuration/examples/example_basic.py rename to modules/11_modern_tooling_2026/22_strict_typing_configuration/examples/example_basic.py diff --git a/11_modern_tooling_2026/22_strict_typing_configuration/exercise/exercise_01.py b/modules/11_modern_tooling_2026/22_strict_typing_configuration/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/22_strict_typing_configuration/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/22_strict_typing_configuration/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/22_strict_typing_configuration/references/links.md b/modules/11_modern_tooling_2026/22_strict_typing_configuration/references/links.md similarity index 100% rename from 11_modern_tooling_2026/22_strict_typing_configuration/references/links.md rename to modules/11_modern_tooling_2026/22_strict_typing_configuration/references/links.md diff --git a/11_modern_tooling_2026/22_strict_typing_configuration/tests/test_basic.py b/modules/11_modern_tooling_2026/22_strict_typing_configuration/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/22_strict_typing_configuration/tests/test_basic.py rename to modules/11_modern_tooling_2026/22_strict_typing_configuration/tests/test_basic.py diff --git a/11_modern_tooling_2026/23_type_narrowing_advanced_guards/README.md b/modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/README.md similarity index 100% rename from 11_modern_tooling_2026/23_type_narrowing_advanced_guards/README.md rename to modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/README.md diff --git a/11_modern_tooling_2026/23_type_narrowing_advanced_guards/examples/example_basic.py b/modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/23_type_narrowing_advanced_guards/examples/example_basic.py rename to modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/examples/example_basic.py diff --git a/11_modern_tooling_2026/23_type_narrowing_advanced_guards/exercise/exercise_01.py b/modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/23_type_narrowing_advanced_guards/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/23_type_narrowing_advanced_guards/references/links.md b/modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/references/links.md similarity index 100% rename from 11_modern_tooling_2026/23_type_narrowing_advanced_guards/references/links.md rename to modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/references/links.md diff --git a/11_modern_tooling_2026/23_type_narrowing_advanced_guards/tests/test_basic.py b/modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/23_type_narrowing_advanced_guards/tests/test_basic.py rename to modules/11_modern_tooling_2026/23_type_narrowing_advanced_guards/tests/test_basic.py diff --git a/11_modern_tooling_2026/24_precommit_configuration_hooks/README.md b/modules/11_modern_tooling_2026/24_precommit_configuration_hooks/README.md similarity index 100% rename from 11_modern_tooling_2026/24_precommit_configuration_hooks/README.md rename to modules/11_modern_tooling_2026/24_precommit_configuration_hooks/README.md diff --git a/11_modern_tooling_2026/24_precommit_configuration_hooks/examples/example_basic.py b/modules/11_modern_tooling_2026/24_precommit_configuration_hooks/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/24_precommit_configuration_hooks/examples/example_basic.py rename to modules/11_modern_tooling_2026/24_precommit_configuration_hooks/examples/example_basic.py diff --git a/11_modern_tooling_2026/24_precommit_configuration_hooks/exercise/exercise_01.py b/modules/11_modern_tooling_2026/24_precommit_configuration_hooks/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/24_precommit_configuration_hooks/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/24_precommit_configuration_hooks/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/24_precommit_configuration_hooks/references/links.md b/modules/11_modern_tooling_2026/24_precommit_configuration_hooks/references/links.md similarity index 100% rename from 11_modern_tooling_2026/24_precommit_configuration_hooks/references/links.md rename to modules/11_modern_tooling_2026/24_precommit_configuration_hooks/references/links.md diff --git a/11_modern_tooling_2026/24_precommit_configuration_hooks/tests/test_basic.py b/modules/11_modern_tooling_2026/24_precommit_configuration_hooks/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/24_precommit_configuration_hooks/tests/test_basic.py rename to modules/11_modern_tooling_2026/24_precommit_configuration_hooks/tests/test_basic.py diff --git a/11_modern_tooling_2026/25_precommit_security_hooks/README.md b/modules/11_modern_tooling_2026/25_precommit_security_hooks/README.md similarity index 100% rename from 11_modern_tooling_2026/25_precommit_security_hooks/README.md rename to modules/11_modern_tooling_2026/25_precommit_security_hooks/README.md diff --git a/11_modern_tooling_2026/25_precommit_security_hooks/examples/example_basic.py b/modules/11_modern_tooling_2026/25_precommit_security_hooks/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/25_precommit_security_hooks/examples/example_basic.py rename to modules/11_modern_tooling_2026/25_precommit_security_hooks/examples/example_basic.py diff --git a/11_modern_tooling_2026/25_precommit_security_hooks/exercise/exercise_01.py b/modules/11_modern_tooling_2026/25_precommit_security_hooks/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/25_precommit_security_hooks/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/25_precommit_security_hooks/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/25_precommit_security_hooks/references/links.md b/modules/11_modern_tooling_2026/25_precommit_security_hooks/references/links.md similarity index 100% rename from 11_modern_tooling_2026/25_precommit_security_hooks/references/links.md rename to modules/11_modern_tooling_2026/25_precommit_security_hooks/references/links.md diff --git a/11_modern_tooling_2026/25_precommit_security_hooks/tests/test_basic.py b/modules/11_modern_tooling_2026/25_precommit_security_hooks/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/25_precommit_security_hooks/tests/test_basic.py rename to modules/11_modern_tooling_2026/25_precommit_security_hooks/tests/test_basic.py diff --git a/11_modern_tooling_2026/26_precommit_performance_caching/README.md b/modules/11_modern_tooling_2026/26_precommit_performance_caching/README.md similarity index 100% rename from 11_modern_tooling_2026/26_precommit_performance_caching/README.md rename to modules/11_modern_tooling_2026/26_precommit_performance_caching/README.md diff --git a/11_modern_tooling_2026/26_precommit_performance_caching/examples/example_basic.py b/modules/11_modern_tooling_2026/26_precommit_performance_caching/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/26_precommit_performance_caching/examples/example_basic.py rename to modules/11_modern_tooling_2026/26_precommit_performance_caching/examples/example_basic.py diff --git a/11_modern_tooling_2026/26_precommit_performance_caching/exercise/exercise_01.py b/modules/11_modern_tooling_2026/26_precommit_performance_caching/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/26_precommit_performance_caching/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/26_precommit_performance_caching/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/26_precommit_performance_caching/references/links.md b/modules/11_modern_tooling_2026/26_precommit_performance_caching/references/links.md similarity index 100% rename from 11_modern_tooling_2026/26_precommit_performance_caching/references/links.md rename to modules/11_modern_tooling_2026/26_precommit_performance_caching/references/links.md diff --git a/11_modern_tooling_2026/26_precommit_performance_caching/tests/test_basic.py b/modules/11_modern_tooling_2026/26_precommit_performance_caching/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/26_precommit_performance_caching/tests/test_basic.py rename to modules/11_modern_tooling_2026/26_precommit_performance_caching/tests/test_basic.py diff --git a/11_modern_tooling_2026/27_pytest_advanced_fixtures/README.md b/modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/README.md similarity index 100% rename from 11_modern_tooling_2026/27_pytest_advanced_fixtures/README.md rename to modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/README.md diff --git a/11_modern_tooling_2026/27_pytest_advanced_fixtures/examples/example_basic.py b/modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/27_pytest_advanced_fixtures/examples/example_basic.py rename to modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/examples/example_basic.py diff --git a/11_modern_tooling_2026/27_pytest_advanced_fixtures/exercise/exercise_01.py b/modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/27_pytest_advanced_fixtures/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/27_pytest_advanced_fixtures/references/links.md b/modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/references/links.md similarity index 100% rename from 11_modern_tooling_2026/27_pytest_advanced_fixtures/references/links.md rename to modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/references/links.md diff --git a/11_modern_tooling_2026/27_pytest_advanced_fixtures/tests/test_basic.py b/modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/27_pytest_advanced_fixtures/tests/test_basic.py rename to modules/11_modern_tooling_2026/27_pytest_advanced_fixtures/tests/test_basic.py diff --git a/11_modern_tooling_2026/28_pytest_cov_coverage/README.md b/modules/11_modern_tooling_2026/28_pytest_cov_coverage/README.md similarity index 100% rename from 11_modern_tooling_2026/28_pytest_cov_coverage/README.md rename to modules/11_modern_tooling_2026/28_pytest_cov_coverage/README.md diff --git a/11_modern_tooling_2026/28_pytest_cov_coverage/examples/example_basic.py b/modules/11_modern_tooling_2026/28_pytest_cov_coverage/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/28_pytest_cov_coverage/examples/example_basic.py rename to modules/11_modern_tooling_2026/28_pytest_cov_coverage/examples/example_basic.py diff --git a/11_modern_tooling_2026/28_pytest_cov_coverage/exercise/exercise_01.py b/modules/11_modern_tooling_2026/28_pytest_cov_coverage/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/28_pytest_cov_coverage/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/28_pytest_cov_coverage/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/28_pytest_cov_coverage/references/links.md b/modules/11_modern_tooling_2026/28_pytest_cov_coverage/references/links.md similarity index 100% rename from 11_modern_tooling_2026/28_pytest_cov_coverage/references/links.md rename to modules/11_modern_tooling_2026/28_pytest_cov_coverage/references/links.md diff --git a/11_modern_tooling_2026/28_pytest_cov_coverage/tests/test_basic.py b/modules/11_modern_tooling_2026/28_pytest_cov_coverage/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/28_pytest_cov_coverage/tests/test_basic.py rename to modules/11_modern_tooling_2026/28_pytest_cov_coverage/tests/test_basic.py diff --git a/11_modern_tooling_2026/29_pytest_xdist_parallelization/README.md b/modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/README.md similarity index 100% rename from 11_modern_tooling_2026/29_pytest_xdist_parallelization/README.md rename to modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/README.md diff --git a/11_modern_tooling_2026/29_pytest_xdist_parallelization/examples/example_basic.py b/modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/29_pytest_xdist_parallelization/examples/example_basic.py rename to modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/examples/example_basic.py diff --git a/11_modern_tooling_2026/29_pytest_xdist_parallelization/exercise/exercise_01.py b/modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/29_pytest_xdist_parallelization/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/29_pytest_xdist_parallelization/references/links.md b/modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/references/links.md similarity index 100% rename from 11_modern_tooling_2026/29_pytest_xdist_parallelization/references/links.md rename to modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/references/links.md diff --git a/11_modern_tooling_2026/29_pytest_xdist_parallelization/tests/test_basic.py b/modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/29_pytest_xdist_parallelization/tests/test_basic.py rename to modules/11_modern_tooling_2026/29_pytest_xdist_parallelization/tests/test_basic.py diff --git a/11_modern_tooling_2026/30_hypothesis_property_testing/README.md b/modules/11_modern_tooling_2026/30_hypothesis_property_testing/README.md similarity index 100% rename from 11_modern_tooling_2026/30_hypothesis_property_testing/README.md rename to modules/11_modern_tooling_2026/30_hypothesis_property_testing/README.md diff --git a/11_modern_tooling_2026/30_hypothesis_property_testing/examples/example_basic.py b/modules/11_modern_tooling_2026/30_hypothesis_property_testing/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/30_hypothesis_property_testing/examples/example_basic.py rename to modules/11_modern_tooling_2026/30_hypothesis_property_testing/examples/example_basic.py diff --git a/11_modern_tooling_2026/30_hypothesis_property_testing/exercise/exercise_01.py b/modules/11_modern_tooling_2026/30_hypothesis_property_testing/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/30_hypothesis_property_testing/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/30_hypothesis_property_testing/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/30_hypothesis_property_testing/references/links.md b/modules/11_modern_tooling_2026/30_hypothesis_property_testing/references/links.md similarity index 100% rename from 11_modern_tooling_2026/30_hypothesis_property_testing/references/links.md rename to modules/11_modern_tooling_2026/30_hypothesis_property_testing/references/links.md diff --git a/11_modern_tooling_2026/30_hypothesis_property_testing/tests/test_basic.py b/modules/11_modern_tooling_2026/30_hypothesis_property_testing/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/30_hypothesis_property_testing/tests/test_basic.py rename to modules/11_modern_tooling_2026/30_hypothesis_property_testing/tests/test_basic.py diff --git a/11_modern_tooling_2026/31_mutation_testing_mutmut/README.md b/modules/11_modern_tooling_2026/31_mutation_testing_mutmut/README.md similarity index 100% rename from 11_modern_tooling_2026/31_mutation_testing_mutmut/README.md rename to modules/11_modern_tooling_2026/31_mutation_testing_mutmut/README.md diff --git a/11_modern_tooling_2026/31_mutation_testing_mutmut/examples/example_basic.py b/modules/11_modern_tooling_2026/31_mutation_testing_mutmut/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/31_mutation_testing_mutmut/examples/example_basic.py rename to modules/11_modern_tooling_2026/31_mutation_testing_mutmut/examples/example_basic.py diff --git a/11_modern_tooling_2026/31_mutation_testing_mutmut/exercise/exercise_01.py b/modules/11_modern_tooling_2026/31_mutation_testing_mutmut/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/31_mutation_testing_mutmut/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/31_mutation_testing_mutmut/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/31_mutation_testing_mutmut/references/links.md b/modules/11_modern_tooling_2026/31_mutation_testing_mutmut/references/links.md similarity index 100% rename from 11_modern_tooling_2026/31_mutation_testing_mutmut/references/links.md rename to modules/11_modern_tooling_2026/31_mutation_testing_mutmut/references/links.md diff --git a/11_modern_tooling_2026/31_mutation_testing_mutmut/tests/test_basic.py b/modules/11_modern_tooling_2026/31_mutation_testing_mutmut/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/31_mutation_testing_mutmut/tests/test_basic.py rename to modules/11_modern_tooling_2026/31_mutation_testing_mutmut/tests/test_basic.py diff --git a/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/README.md b/modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/README.md similarity index 100% rename from 11_modern_tooling_2026/32_pyspy_profiling_without_overhead/README.md rename to modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/README.md diff --git a/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/examples/example_basic.py b/modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/32_pyspy_profiling_without_overhead/examples/example_basic.py rename to modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/examples/example_basic.py diff --git a/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/exercise/exercise_01.py b/modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/32_pyspy_profiling_without_overhead/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/references/links.md b/modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/references/links.md similarity index 100% rename from 11_modern_tooling_2026/32_pyspy_profiling_without_overhead/references/links.md rename to modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/references/links.md diff --git a/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/tests/test_basic.py b/modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/32_pyspy_profiling_without_overhead/tests/test_basic.py rename to modules/11_modern_tooling_2026/32_pyspy_profiling_without_overhead/tests/test_basic.py diff --git a/11_modern_tooling_2026/33_memray_memory_profiling/README.md b/modules/11_modern_tooling_2026/33_memray_memory_profiling/README.md similarity index 100% rename from 11_modern_tooling_2026/33_memray_memory_profiling/README.md rename to modules/11_modern_tooling_2026/33_memray_memory_profiling/README.md diff --git a/11_modern_tooling_2026/33_memray_memory_profiling/examples/example_basic.py b/modules/11_modern_tooling_2026/33_memray_memory_profiling/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/33_memray_memory_profiling/examples/example_basic.py rename to modules/11_modern_tooling_2026/33_memray_memory_profiling/examples/example_basic.py diff --git a/11_modern_tooling_2026/33_memray_memory_profiling/exercise/exercise_01.py b/modules/11_modern_tooling_2026/33_memray_memory_profiling/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/33_memray_memory_profiling/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/33_memray_memory_profiling/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/33_memray_memory_profiling/references/links.md b/modules/11_modern_tooling_2026/33_memray_memory_profiling/references/links.md similarity index 100% rename from 11_modern_tooling_2026/33_memray_memory_profiling/references/links.md rename to modules/11_modern_tooling_2026/33_memray_memory_profiling/references/links.md diff --git a/11_modern_tooling_2026/33_memray_memory_profiling/tests/test_basic.py b/modules/11_modern_tooling_2026/33_memray_memory_profiling/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/33_memray_memory_profiling/tests/test_basic.py rename to modules/11_modern_tooling_2026/33_memray_memory_profiling/tests/test_basic.py diff --git a/11_modern_tooling_2026/34_viztracer_tracing_visual/README.md b/modules/11_modern_tooling_2026/34_viztracer_tracing_visual/README.md similarity index 100% rename from 11_modern_tooling_2026/34_viztracer_tracing_visual/README.md rename to modules/11_modern_tooling_2026/34_viztracer_tracing_visual/README.md diff --git a/11_modern_tooling_2026/34_viztracer_tracing_visual/examples/example_basic.py b/modules/11_modern_tooling_2026/34_viztracer_tracing_visual/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/34_viztracer_tracing_visual/examples/example_basic.py rename to modules/11_modern_tooling_2026/34_viztracer_tracing_visual/examples/example_basic.py diff --git a/11_modern_tooling_2026/34_viztracer_tracing_visual/exercise/exercise_01.py b/modules/11_modern_tooling_2026/34_viztracer_tracing_visual/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/34_viztracer_tracing_visual/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/34_viztracer_tracing_visual/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/34_viztracer_tracing_visual/references/links.md b/modules/11_modern_tooling_2026/34_viztracer_tracing_visual/references/links.md similarity index 100% rename from 11_modern_tooling_2026/34_viztracer_tracing_visual/references/links.md rename to modules/11_modern_tooling_2026/34_viztracer_tracing_visual/references/links.md diff --git a/11_modern_tooling_2026/34_viztracer_tracing_visual/tests/test_basic.py b/modules/11_modern_tooling_2026/34_viztracer_tracing_visual/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/34_viztracer_tracing_visual/tests/test_basic.py rename to modules/11_modern_tooling_2026/34_viztracer_tracing_visual/tests/test_basic.py diff --git a/11_modern_tooling_2026/35_debugpy_remote_debugging/README.md b/modules/11_modern_tooling_2026/35_debugpy_remote_debugging/README.md similarity index 100% rename from 11_modern_tooling_2026/35_debugpy_remote_debugging/README.md rename to modules/11_modern_tooling_2026/35_debugpy_remote_debugging/README.md diff --git a/11_modern_tooling_2026/35_debugpy_remote_debugging/examples/example_basic.py b/modules/11_modern_tooling_2026/35_debugpy_remote_debugging/examples/example_basic.py similarity index 100% rename from 11_modern_tooling_2026/35_debugpy_remote_debugging/examples/example_basic.py rename to modules/11_modern_tooling_2026/35_debugpy_remote_debugging/examples/example_basic.py diff --git a/11_modern_tooling_2026/35_debugpy_remote_debugging/exercise/exercise_01.py b/modules/11_modern_tooling_2026/35_debugpy_remote_debugging/exercise/exercise_01.py similarity index 100% rename from 11_modern_tooling_2026/35_debugpy_remote_debugging/exercise/exercise_01.py rename to modules/11_modern_tooling_2026/35_debugpy_remote_debugging/exercise/exercise_01.py diff --git a/11_modern_tooling_2026/35_debugpy_remote_debugging/references/links.md b/modules/11_modern_tooling_2026/35_debugpy_remote_debugging/references/links.md similarity index 100% rename from 11_modern_tooling_2026/35_debugpy_remote_debugging/references/links.md rename to modules/11_modern_tooling_2026/35_debugpy_remote_debugging/references/links.md diff --git a/11_modern_tooling_2026/35_debugpy_remote_debugging/tests/test_basic.py b/modules/11_modern_tooling_2026/35_debugpy_remote_debugging/tests/test_basic.py similarity index 100% rename from 11_modern_tooling_2026/35_debugpy_remote_debugging/tests/test_basic.py rename to modules/11_modern_tooling_2026/35_debugpy_remote_debugging/tests/test_basic.py diff --git a/11_modern_tooling_2026/README.md b/modules/11_modern_tooling_2026/README.md similarity index 100% rename from 11_modern_tooling_2026/README.md rename to modules/11_modern_tooling_2026/README.md diff --git a/12_fastapi_complete/README.md b/modules/12_fastapi_complete/README.md similarity index 100% rename from 12_fastapi_complete/README.md rename to modules/12_fastapi_complete/README.md diff --git a/12_fastapi_complete/alembic_migrations/README.md b/modules/12_fastapi_complete/alembic_migrations/README.md similarity index 100% rename from 12_fastapi_complete/alembic_migrations/README.md rename to modules/12_fastapi_complete/alembic_migrations/README.md diff --git a/12_fastapi_complete/alembic_migrations/examples/example_basic.py b/modules/12_fastapi_complete/alembic_migrations/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/alembic_migrations/examples/example_basic.py rename to modules/12_fastapi_complete/alembic_migrations/examples/example_basic.py diff --git a/12_fastapi_complete/alembic_migrations/exercise/exercise_01.py b/modules/12_fastapi_complete/alembic_migrations/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/alembic_migrations/exercise/exercise_01.py rename to modules/12_fastapi_complete/alembic_migrations/exercise/exercise_01.py diff --git a/12_fastapi_complete/alembic_migrations/references/links.md b/modules/12_fastapi_complete/alembic_migrations/references/links.md similarity index 100% rename from 12_fastapi_complete/alembic_migrations/references/links.md rename to modules/12_fastapi_complete/alembic_migrations/references/links.md diff --git a/12_fastapi_complete/alembic_migrations/tests/test_basic.py b/modules/12_fastapi_complete/alembic_migrations/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/alembic_migrations/tests/test_basic.py rename to modules/12_fastapi_complete/alembic_migrations/tests/test_basic.py diff --git a/12_fastapi_complete/async_databases/README.md b/modules/12_fastapi_complete/async_databases/README.md similarity index 100% rename from 12_fastapi_complete/async_databases/README.md rename to modules/12_fastapi_complete/async_databases/README.md diff --git a/12_fastapi_complete/async_databases/examples/example_basic.py b/modules/12_fastapi_complete/async_databases/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/async_databases/examples/example_basic.py rename to modules/12_fastapi_complete/async_databases/examples/example_basic.py diff --git a/12_fastapi_complete/async_databases/exercise/exercise_01.py b/modules/12_fastapi_complete/async_databases/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/async_databases/exercise/exercise_01.py rename to modules/12_fastapi_complete/async_databases/exercise/exercise_01.py diff --git a/12_fastapi_complete/async_databases/references/links.md b/modules/12_fastapi_complete/async_databases/references/links.md similarity index 100% rename from 12_fastapi_complete/async_databases/references/links.md rename to modules/12_fastapi_complete/async_databases/references/links.md diff --git a/12_fastapi_complete/async_databases/tests/test_basic.py b/modules/12_fastapi_complete/async_databases/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/async_databases/tests/test_basic.py rename to modules/12_fastapi_complete/async_databases/tests/test_basic.py diff --git a/12_fastapi_complete/authentication_jwt/README.md b/modules/12_fastapi_complete/authentication_jwt/README.md similarity index 100% rename from 12_fastapi_complete/authentication_jwt/README.md rename to modules/12_fastapi_complete/authentication_jwt/README.md diff --git a/12_fastapi_complete/authentication_jwt/examples/example_basic.py b/modules/12_fastapi_complete/authentication_jwt/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/authentication_jwt/examples/example_basic.py rename to modules/12_fastapi_complete/authentication_jwt/examples/example_basic.py diff --git a/12_fastapi_complete/authentication_jwt/exercise/exercise_01.py b/modules/12_fastapi_complete/authentication_jwt/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/authentication_jwt/exercise/exercise_01.py rename to modules/12_fastapi_complete/authentication_jwt/exercise/exercise_01.py diff --git a/12_fastapi_complete/authentication_jwt/references/links.md b/modules/12_fastapi_complete/authentication_jwt/references/links.md similarity index 100% rename from 12_fastapi_complete/authentication_jwt/references/links.md rename to modules/12_fastapi_complete/authentication_jwt/references/links.md diff --git a/12_fastapi_complete/authentication_jwt/tests/test_basic.py b/modules/12_fastapi_complete/authentication_jwt/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/authentication_jwt/tests/test_basic.py rename to modules/12_fastapi_complete/authentication_jwt/tests/test_basic.py diff --git a/12_fastapi_complete/background_tasks/README.md b/modules/12_fastapi_complete/background_tasks/README.md similarity index 100% rename from 12_fastapi_complete/background_tasks/README.md rename to modules/12_fastapi_complete/background_tasks/README.md diff --git a/12_fastapi_complete/background_tasks/examples/example_basic.py b/modules/12_fastapi_complete/background_tasks/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/background_tasks/examples/example_basic.py rename to modules/12_fastapi_complete/background_tasks/examples/example_basic.py diff --git a/12_fastapi_complete/background_tasks/exercise/exercise_01.py b/modules/12_fastapi_complete/background_tasks/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/background_tasks/exercise/exercise_01.py rename to modules/12_fastapi_complete/background_tasks/exercise/exercise_01.py diff --git a/12_fastapi_complete/background_tasks/references/links.md b/modules/12_fastapi_complete/background_tasks/references/links.md similarity index 100% rename from 12_fastapi_complete/background_tasks/references/links.md rename to modules/12_fastapi_complete/background_tasks/references/links.md diff --git a/12_fastapi_complete/background_tasks/tests/test_basic.py b/modules/12_fastapi_complete/background_tasks/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/background_tasks/tests/test_basic.py rename to modules/12_fastapi_complete/background_tasks/tests/test_basic.py diff --git a/12_fastapi_complete/cors/README.md b/modules/12_fastapi_complete/cors/README.md similarity index 100% rename from 12_fastapi_complete/cors/README.md rename to modules/12_fastapi_complete/cors/README.md diff --git a/12_fastapi_complete/cors/examples/example_basic.py b/modules/12_fastapi_complete/cors/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/cors/examples/example_basic.py rename to modules/12_fastapi_complete/cors/examples/example_basic.py diff --git a/12_fastapi_complete/cors/exercise/exercise_01.py b/modules/12_fastapi_complete/cors/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/cors/exercise/exercise_01.py rename to modules/12_fastapi_complete/cors/exercise/exercise_01.py diff --git a/12_fastapi_complete/cors/references/links.md b/modules/12_fastapi_complete/cors/references/links.md similarity index 100% rename from 12_fastapi_complete/cors/references/links.md rename to modules/12_fastapi_complete/cors/references/links.md diff --git a/12_fastapi_complete/cors/tests/test_basic.py b/modules/12_fastapi_complete/cors/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/cors/tests/test_basic.py rename to modules/12_fastapi_complete/cors/tests/test_basic.py diff --git a/12_fastapi_complete/dependency_injection/README.md b/modules/12_fastapi_complete/dependency_injection/README.md similarity index 100% rename from 12_fastapi_complete/dependency_injection/README.md rename to modules/12_fastapi_complete/dependency_injection/README.md diff --git a/12_fastapi_complete/dependency_injection/examples/example_basic.py b/modules/12_fastapi_complete/dependency_injection/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/dependency_injection/examples/example_basic.py rename to modules/12_fastapi_complete/dependency_injection/examples/example_basic.py diff --git a/12_fastapi_complete/dependency_injection/exercise/exercise_01.py b/modules/12_fastapi_complete/dependency_injection/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/dependency_injection/exercise/exercise_01.py rename to modules/12_fastapi_complete/dependency_injection/exercise/exercise_01.py diff --git a/12_fastapi_complete/dependency_injection/references/links.md b/modules/12_fastapi_complete/dependency_injection/references/links.md similarity index 100% rename from 12_fastapi_complete/dependency_injection/references/links.md rename to modules/12_fastapi_complete/dependency_injection/references/links.md diff --git a/12_fastapi_complete/dependency_injection/tests/test_basic.py b/modules/12_fastapi_complete/dependency_injection/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/dependency_injection/tests/test_basic.py rename to modules/12_fastapi_complete/dependency_injection/tests/test_basic.py diff --git a/12_fastapi_complete/deployment/README.md b/modules/12_fastapi_complete/deployment/README.md similarity index 100% rename from 12_fastapi_complete/deployment/README.md rename to modules/12_fastapi_complete/deployment/README.md diff --git a/12_fastapi_complete/deployment/examples/example_basic.py b/modules/12_fastapi_complete/deployment/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/deployment/examples/example_basic.py rename to modules/12_fastapi_complete/deployment/examples/example_basic.py diff --git a/12_fastapi_complete/deployment/exercise/exercise_01.py b/modules/12_fastapi_complete/deployment/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/deployment/exercise/exercise_01.py rename to modules/12_fastapi_complete/deployment/exercise/exercise_01.py diff --git a/12_fastapi_complete/deployment/references/links.md b/modules/12_fastapi_complete/deployment/references/links.md similarity index 100% rename from 12_fastapi_complete/deployment/references/links.md rename to modules/12_fastapi_complete/deployment/references/links.md diff --git a/12_fastapi_complete/deployment/tests/test_basic.py b/modules/12_fastapi_complete/deployment/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/deployment/tests/test_basic.py rename to modules/12_fastapi_complete/deployment/tests/test_basic.py diff --git a/12_fastapi_complete/error_handling/README.md b/modules/12_fastapi_complete/error_handling/README.md similarity index 100% rename from 12_fastapi_complete/error_handling/README.md rename to modules/12_fastapi_complete/error_handling/README.md diff --git a/12_fastapi_complete/error_handling/examples/example_basic.py b/modules/12_fastapi_complete/error_handling/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/error_handling/examples/example_basic.py rename to modules/12_fastapi_complete/error_handling/examples/example_basic.py diff --git a/12_fastapi_complete/error_handling/exercise/exercise_01.py b/modules/12_fastapi_complete/error_handling/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/error_handling/exercise/exercise_01.py rename to modules/12_fastapi_complete/error_handling/exercise/exercise_01.py diff --git a/12_fastapi_complete/error_handling/references/links.md b/modules/12_fastapi_complete/error_handling/references/links.md similarity index 100% rename from 12_fastapi_complete/error_handling/references/links.md rename to modules/12_fastapi_complete/error_handling/references/links.md diff --git a/12_fastapi_complete/error_handling/tests/test_basic.py b/modules/12_fastapi_complete/error_handling/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/error_handling/tests/test_basic.py rename to modules/12_fastapi_complete/error_handling/tests/test_basic.py diff --git a/12_fastapi_complete/fastapi_intro/README.md b/modules/12_fastapi_complete/fastapi_intro/README.md similarity index 100% rename from 12_fastapi_complete/fastapi_intro/README.md rename to modules/12_fastapi_complete/fastapi_intro/README.md diff --git a/12_fastapi_complete/fastapi_intro/examples/example_basic.py b/modules/12_fastapi_complete/fastapi_intro/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/fastapi_intro/examples/example_basic.py rename to modules/12_fastapi_complete/fastapi_intro/examples/example_basic.py diff --git a/12_fastapi_complete/fastapi_intro/exercise/exercise_01.py b/modules/12_fastapi_complete/fastapi_intro/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/fastapi_intro/exercise/exercise_01.py rename to modules/12_fastapi_complete/fastapi_intro/exercise/exercise_01.py diff --git a/12_fastapi_complete/fastapi_intro/references/links.md b/modules/12_fastapi_complete/fastapi_intro/references/links.md similarity index 100% rename from 12_fastapi_complete/fastapi_intro/references/links.md rename to modules/12_fastapi_complete/fastapi_intro/references/links.md diff --git a/12_fastapi_complete/fastapi_intro/tests/test_basic.py b/modules/12_fastapi_complete/fastapi_intro/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/fastapi_intro/tests/test_basic.py rename to modules/12_fastapi_complete/fastapi_intro/tests/test_basic.py diff --git a/12_fastapi_complete/fastapi_performance/README.md b/modules/12_fastapi_complete/fastapi_performance/README.md similarity index 100% rename from 12_fastapi_complete/fastapi_performance/README.md rename to modules/12_fastapi_complete/fastapi_performance/README.md diff --git a/12_fastapi_complete/fastapi_performance/examples/example_basic.py b/modules/12_fastapi_complete/fastapi_performance/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/fastapi_performance/examples/example_basic.py rename to modules/12_fastapi_complete/fastapi_performance/examples/example_basic.py diff --git a/12_fastapi_complete/fastapi_performance/exercise/exercise_01.py b/modules/12_fastapi_complete/fastapi_performance/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/fastapi_performance/exercise/exercise_01.py rename to modules/12_fastapi_complete/fastapi_performance/exercise/exercise_01.py diff --git a/12_fastapi_complete/fastapi_performance/references/links.md b/modules/12_fastapi_complete/fastapi_performance/references/links.md similarity index 100% rename from 12_fastapi_complete/fastapi_performance/references/links.md rename to modules/12_fastapi_complete/fastapi_performance/references/links.md diff --git a/12_fastapi_complete/fastapi_performance/tests/test_basic.py b/modules/12_fastapi_complete/fastapi_performance/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/fastapi_performance/tests/test_basic.py rename to modules/12_fastapi_complete/fastapi_performance/tests/test_basic.py diff --git a/12_fastapi_complete/file_uploads/README.md b/modules/12_fastapi_complete/file_uploads/README.md similarity index 100% rename from 12_fastapi_complete/file_uploads/README.md rename to modules/12_fastapi_complete/file_uploads/README.md diff --git a/12_fastapi_complete/file_uploads/examples/example_basic.py b/modules/12_fastapi_complete/file_uploads/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/file_uploads/examples/example_basic.py rename to modules/12_fastapi_complete/file_uploads/examples/example_basic.py diff --git a/12_fastapi_complete/file_uploads/exercise/exercise_01.py b/modules/12_fastapi_complete/file_uploads/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/file_uploads/exercise/exercise_01.py rename to modules/12_fastapi_complete/file_uploads/exercise/exercise_01.py diff --git a/12_fastapi_complete/file_uploads/references/links.md b/modules/12_fastapi_complete/file_uploads/references/links.md similarity index 100% rename from 12_fastapi_complete/file_uploads/references/links.md rename to modules/12_fastapi_complete/file_uploads/references/links.md diff --git a/12_fastapi_complete/file_uploads/tests/test_basic.py b/modules/12_fastapi_complete/file_uploads/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/file_uploads/tests/test_basic.py rename to modules/12_fastapi_complete/file_uploads/tests/test_basic.py diff --git a/12_fastapi_complete/graphql_optional/README.md b/modules/12_fastapi_complete/graphql_optional/README.md similarity index 100% rename from 12_fastapi_complete/graphql_optional/README.md rename to modules/12_fastapi_complete/graphql_optional/README.md diff --git a/12_fastapi_complete/graphql_optional/examples/example_basic.py b/modules/12_fastapi_complete/graphql_optional/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/graphql_optional/examples/example_basic.py rename to modules/12_fastapi_complete/graphql_optional/examples/example_basic.py diff --git a/12_fastapi_complete/graphql_optional/exercise/exercise_01.py b/modules/12_fastapi_complete/graphql_optional/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/graphql_optional/exercise/exercise_01.py rename to modules/12_fastapi_complete/graphql_optional/exercise/exercise_01.py diff --git a/12_fastapi_complete/graphql_optional/references/links.md b/modules/12_fastapi_complete/graphql_optional/references/links.md similarity index 100% rename from 12_fastapi_complete/graphql_optional/references/links.md rename to modules/12_fastapi_complete/graphql_optional/references/links.md diff --git a/12_fastapi_complete/graphql_optional/tests/test_basic.py b/modules/12_fastapi_complete/graphql_optional/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/graphql_optional/tests/test_basic.py rename to modules/12_fastapi_complete/graphql_optional/tests/test_basic.py diff --git a/12_fastapi_complete/logging_monitoring/README.md b/modules/12_fastapi_complete/logging_monitoring/README.md similarity index 100% rename from 12_fastapi_complete/logging_monitoring/README.md rename to modules/12_fastapi_complete/logging_monitoring/README.md diff --git a/12_fastapi_complete/logging_monitoring/examples/example_basic.py b/modules/12_fastapi_complete/logging_monitoring/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/logging_monitoring/examples/example_basic.py rename to modules/12_fastapi_complete/logging_monitoring/examples/example_basic.py diff --git a/12_fastapi_complete/logging_monitoring/exercise/exercise_01.py b/modules/12_fastapi_complete/logging_monitoring/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/logging_monitoring/exercise/exercise_01.py rename to modules/12_fastapi_complete/logging_monitoring/exercise/exercise_01.py diff --git a/12_fastapi_complete/logging_monitoring/references/links.md b/modules/12_fastapi_complete/logging_monitoring/references/links.md similarity index 100% rename from 12_fastapi_complete/logging_monitoring/references/links.md rename to modules/12_fastapi_complete/logging_monitoring/references/links.md diff --git a/12_fastapi_complete/logging_monitoring/tests/test_basic.py b/modules/12_fastapi_complete/logging_monitoring/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/logging_monitoring/tests/test_basic.py rename to modules/12_fastapi_complete/logging_monitoring/tests/test_basic.py diff --git a/12_fastapi_complete/middleware/README.md b/modules/12_fastapi_complete/middleware/README.md similarity index 100% rename from 12_fastapi_complete/middleware/README.md rename to modules/12_fastapi_complete/middleware/README.md diff --git a/12_fastapi_complete/middleware/examples/example_basic.py b/modules/12_fastapi_complete/middleware/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/middleware/examples/example_basic.py rename to modules/12_fastapi_complete/middleware/examples/example_basic.py diff --git a/12_fastapi_complete/middleware/exercise/exercise_01.py b/modules/12_fastapi_complete/middleware/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/middleware/exercise/exercise_01.py rename to modules/12_fastapi_complete/middleware/exercise/exercise_01.py diff --git a/12_fastapi_complete/middleware/references/links.md b/modules/12_fastapi_complete/middleware/references/links.md similarity index 100% rename from 12_fastapi_complete/middleware/references/links.md rename to modules/12_fastapi_complete/middleware/references/links.md diff --git a/12_fastapi_complete/middleware/tests/test_basic.py b/modules/12_fastapi_complete/middleware/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/middleware/tests/test_basic.py rename to modules/12_fastapi_complete/middleware/tests/test_basic.py diff --git a/12_fastapi_complete/oauth2/README.md b/modules/12_fastapi_complete/oauth2/README.md similarity index 100% rename from 12_fastapi_complete/oauth2/README.md rename to modules/12_fastapi_complete/oauth2/README.md diff --git a/12_fastapi_complete/oauth2/examples/example_basic.py b/modules/12_fastapi_complete/oauth2/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/oauth2/examples/example_basic.py rename to modules/12_fastapi_complete/oauth2/examples/example_basic.py diff --git a/12_fastapi_complete/oauth2/exercise/exercise_01.py b/modules/12_fastapi_complete/oauth2/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/oauth2/exercise/exercise_01.py rename to modules/12_fastapi_complete/oauth2/exercise/exercise_01.py diff --git a/12_fastapi_complete/oauth2/references/links.md b/modules/12_fastapi_complete/oauth2/references/links.md similarity index 100% rename from 12_fastapi_complete/oauth2/references/links.md rename to modules/12_fastapi_complete/oauth2/references/links.md diff --git a/12_fastapi_complete/oauth2/tests/test_basic.py b/modules/12_fastapi_complete/oauth2/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/oauth2/tests/test_basic.py rename to modules/12_fastapi_complete/oauth2/tests/test_basic.py diff --git a/12_fastapi_complete/openapi_customization/README.md b/modules/12_fastapi_complete/openapi_customization/README.md similarity index 100% rename from 12_fastapi_complete/openapi_customization/README.md rename to modules/12_fastapi_complete/openapi_customization/README.md diff --git a/12_fastapi_complete/openapi_customization/examples/example_basic.py b/modules/12_fastapi_complete/openapi_customization/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/openapi_customization/examples/example_basic.py rename to modules/12_fastapi_complete/openapi_customization/examples/example_basic.py diff --git a/12_fastapi_complete/openapi_customization/exercise/exercise_01.py b/modules/12_fastapi_complete/openapi_customization/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/openapi_customization/exercise/exercise_01.py rename to modules/12_fastapi_complete/openapi_customization/exercise/exercise_01.py diff --git a/12_fastapi_complete/openapi_customization/references/links.md b/modules/12_fastapi_complete/openapi_customization/references/links.md similarity index 100% rename from 12_fastapi_complete/openapi_customization/references/links.md rename to modules/12_fastapi_complete/openapi_customization/references/links.md diff --git a/12_fastapi_complete/openapi_customization/tests/test_basic.py b/modules/12_fastapi_complete/openapi_customization/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/openapi_customization/tests/test_basic.py rename to modules/12_fastapi_complete/openapi_customization/tests/test_basic.py diff --git a/12_fastapi_complete/path_query_params/README.md b/modules/12_fastapi_complete/path_query_params/README.md similarity index 100% rename from 12_fastapi_complete/path_query_params/README.md rename to modules/12_fastapi_complete/path_query_params/README.md diff --git a/12_fastapi_complete/path_query_params/examples/example_basic.py b/modules/12_fastapi_complete/path_query_params/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/path_query_params/examples/example_basic.py rename to modules/12_fastapi_complete/path_query_params/examples/example_basic.py diff --git a/12_fastapi_complete/path_query_params/exercise/exercise_01.py b/modules/12_fastapi_complete/path_query_params/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/path_query_params/exercise/exercise_01.py rename to modules/12_fastapi_complete/path_query_params/exercise/exercise_01.py diff --git a/12_fastapi_complete/path_query_params/references/links.md b/modules/12_fastapi_complete/path_query_params/references/links.md similarity index 100% rename from 12_fastapi_complete/path_query_params/references/links.md rename to modules/12_fastapi_complete/path_query_params/references/links.md diff --git a/12_fastapi_complete/path_query_params/tests/test_basic.py b/modules/12_fastapi_complete/path_query_params/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/path_query_params/tests/test_basic.py rename to modules/12_fastapi_complete/path_query_params/tests/test_basic.py diff --git a/12_fastapi_complete/pydantic_models/README.md b/modules/12_fastapi_complete/pydantic_models/README.md similarity index 100% rename from 12_fastapi_complete/pydantic_models/README.md rename to modules/12_fastapi_complete/pydantic_models/README.md diff --git a/12_fastapi_complete/pydantic_models/examples/example_basic.py b/modules/12_fastapi_complete/pydantic_models/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/pydantic_models/examples/example_basic.py rename to modules/12_fastapi_complete/pydantic_models/examples/example_basic.py diff --git a/12_fastapi_complete/pydantic_models/exercise/exercise_01.py b/modules/12_fastapi_complete/pydantic_models/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/pydantic_models/exercise/exercise_01.py rename to modules/12_fastapi_complete/pydantic_models/exercise/exercise_01.py diff --git a/12_fastapi_complete/pydantic_models/references/links.md b/modules/12_fastapi_complete/pydantic_models/references/links.md similarity index 100% rename from 12_fastapi_complete/pydantic_models/references/links.md rename to modules/12_fastapi_complete/pydantic_models/references/links.md diff --git a/12_fastapi_complete/pydantic_models/tests/test_basic.py b/modules/12_fastapi_complete/pydantic_models/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/pydantic_models/tests/test_basic.py rename to modules/12_fastapi_complete/pydantic_models/tests/test_basic.py diff --git a/12_fastapi_complete/rate_limiting/README.md b/modules/12_fastapi_complete/rate_limiting/README.md similarity index 100% rename from 12_fastapi_complete/rate_limiting/README.md rename to modules/12_fastapi_complete/rate_limiting/README.md diff --git a/12_fastapi_complete/rate_limiting/examples/example_basic.py b/modules/12_fastapi_complete/rate_limiting/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/rate_limiting/examples/example_basic.py rename to modules/12_fastapi_complete/rate_limiting/examples/example_basic.py diff --git a/12_fastapi_complete/rate_limiting/exercise/exercise_01.py b/modules/12_fastapi_complete/rate_limiting/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/rate_limiting/exercise/exercise_01.py rename to modules/12_fastapi_complete/rate_limiting/exercise/exercise_01.py diff --git a/12_fastapi_complete/rate_limiting/references/links.md b/modules/12_fastapi_complete/rate_limiting/references/links.md similarity index 100% rename from 12_fastapi_complete/rate_limiting/references/links.md rename to modules/12_fastapi_complete/rate_limiting/references/links.md diff --git a/12_fastapi_complete/rate_limiting/tests/test_basic.py b/modules/12_fastapi_complete/rate_limiting/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/rate_limiting/tests/test_basic.py rename to modules/12_fastapi_complete/rate_limiting/tests/test_basic.py diff --git a/12_fastapi_complete/redis_caching/README.md b/modules/12_fastapi_complete/redis_caching/README.md similarity index 100% rename from 12_fastapi_complete/redis_caching/README.md rename to modules/12_fastapi_complete/redis_caching/README.md diff --git a/12_fastapi_complete/redis_caching/examples/example_basic.py b/modules/12_fastapi_complete/redis_caching/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/redis_caching/examples/example_basic.py rename to modules/12_fastapi_complete/redis_caching/examples/example_basic.py diff --git a/12_fastapi_complete/redis_caching/exercise/exercise_01.py b/modules/12_fastapi_complete/redis_caching/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/redis_caching/exercise/exercise_01.py rename to modules/12_fastapi_complete/redis_caching/exercise/exercise_01.py diff --git a/12_fastapi_complete/redis_caching/references/links.md b/modules/12_fastapi_complete/redis_caching/references/links.md similarity index 100% rename from 12_fastapi_complete/redis_caching/references/links.md rename to modules/12_fastapi_complete/redis_caching/references/links.md diff --git a/12_fastapi_complete/redis_caching/tests/test_basic.py b/modules/12_fastapi_complete/redis_caching/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/redis_caching/tests/test_basic.py rename to modules/12_fastapi_complete/redis_caching/tests/test_basic.py diff --git a/12_fastapi_complete/request_body/README.md b/modules/12_fastapi_complete/request_body/README.md similarity index 100% rename from 12_fastapi_complete/request_body/README.md rename to modules/12_fastapi_complete/request_body/README.md diff --git a/12_fastapi_complete/request_body/examples/example_basic.py b/modules/12_fastapi_complete/request_body/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/request_body/examples/example_basic.py rename to modules/12_fastapi_complete/request_body/examples/example_basic.py diff --git a/12_fastapi_complete/request_body/exercise/exercise_01.py b/modules/12_fastapi_complete/request_body/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/request_body/exercise/exercise_01.py rename to modules/12_fastapi_complete/request_body/exercise/exercise_01.py diff --git a/12_fastapi_complete/request_body/references/links.md b/modules/12_fastapi_complete/request_body/references/links.md similarity index 100% rename from 12_fastapi_complete/request_body/references/links.md rename to modules/12_fastapi_complete/request_body/references/links.md diff --git a/12_fastapi_complete/request_body/tests/test_basic.py b/modules/12_fastapi_complete/request_body/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/request_body/tests/test_basic.py rename to modules/12_fastapi_complete/request_body/tests/test_basic.py diff --git a/12_fastapi_complete/response_models/README.md b/modules/12_fastapi_complete/response_models/README.md similarity index 100% rename from 12_fastapi_complete/response_models/README.md rename to modules/12_fastapi_complete/response_models/README.md diff --git a/12_fastapi_complete/response_models/examples/example_basic.py b/modules/12_fastapi_complete/response_models/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/response_models/examples/example_basic.py rename to modules/12_fastapi_complete/response_models/examples/example_basic.py diff --git a/12_fastapi_complete/response_models/exercise/exercise_01.py b/modules/12_fastapi_complete/response_models/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/response_models/exercise/exercise_01.py rename to modules/12_fastapi_complete/response_models/exercise/exercise_01.py diff --git a/12_fastapi_complete/response_models/references/links.md b/modules/12_fastapi_complete/response_models/references/links.md similarity index 100% rename from 12_fastapi_complete/response_models/references/links.md rename to modules/12_fastapi_complete/response_models/references/links.md diff --git a/12_fastapi_complete/response_models/tests/test_basic.py b/modules/12_fastapi_complete/response_models/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/response_models/tests/test_basic.py rename to modules/12_fastapi_complete/response_models/tests/test_basic.py diff --git a/12_fastapi_complete/routing/README.md b/modules/12_fastapi_complete/routing/README.md similarity index 100% rename from 12_fastapi_complete/routing/README.md rename to modules/12_fastapi_complete/routing/README.md diff --git a/12_fastapi_complete/routing/examples/example_basic.py b/modules/12_fastapi_complete/routing/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/routing/examples/example_basic.py rename to modules/12_fastapi_complete/routing/examples/example_basic.py diff --git a/12_fastapi_complete/routing/exercise/exercise_01.py b/modules/12_fastapi_complete/routing/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/routing/exercise/exercise_01.py rename to modules/12_fastapi_complete/routing/exercise/exercise_01.py diff --git a/12_fastapi_complete/routing/references/links.md b/modules/12_fastapi_complete/routing/references/links.md similarity index 100% rename from 12_fastapi_complete/routing/references/links.md rename to modules/12_fastapi_complete/routing/references/links.md diff --git a/12_fastapi_complete/routing/tests/test_basic.py b/modules/12_fastapi_complete/routing/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/routing/tests/test_basic.py rename to modules/12_fastapi_complete/routing/tests/test_basic.py diff --git a/12_fastapi_complete/security_best_practices/README.md b/modules/12_fastapi_complete/security_best_practices/README.md similarity index 100% rename from 12_fastapi_complete/security_best_practices/README.md rename to modules/12_fastapi_complete/security_best_practices/README.md diff --git a/12_fastapi_complete/security_best_practices/examples/example_basic.py b/modules/12_fastapi_complete/security_best_practices/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/security_best_practices/examples/example_basic.py rename to modules/12_fastapi_complete/security_best_practices/examples/example_basic.py diff --git a/12_fastapi_complete/security_best_practices/exercise/exercise_01.py b/modules/12_fastapi_complete/security_best_practices/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/security_best_practices/exercise/exercise_01.py rename to modules/12_fastapi_complete/security_best_practices/exercise/exercise_01.py diff --git a/12_fastapi_complete/security_best_practices/references/links.md b/modules/12_fastapi_complete/security_best_practices/references/links.md similarity index 100% rename from 12_fastapi_complete/security_best_practices/references/links.md rename to modules/12_fastapi_complete/security_best_practices/references/links.md diff --git a/12_fastapi_complete/security_best_practices/tests/test_basic.py b/modules/12_fastapi_complete/security_best_practices/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/security_best_practices/tests/test_basic.py rename to modules/12_fastapi_complete/security_best_practices/tests/test_basic.py diff --git a/12_fastapi_complete/sqlalchemy_integration/README.md b/modules/12_fastapi_complete/sqlalchemy_integration/README.md similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/README.md rename to modules/12_fastapi_complete/sqlalchemy_integration/README.md diff --git a/12_fastapi_complete/sqlalchemy_integration/examples/example_basic.py b/modules/12_fastapi_complete/sqlalchemy_integration/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/examples/example_basic.py rename to modules/12_fastapi_complete/sqlalchemy_integration/examples/example_basic.py diff --git a/12_fastapi_complete/sqlalchemy_integration/examples/library.db b/modules/12_fastapi_complete/sqlalchemy_integration/examples/library.db similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/examples/library.db rename to modules/12_fastapi_complete/sqlalchemy_integration/examples/library.db diff --git a/12_fastapi_complete/sqlalchemy_integration/exercise/exercise_01.py b/modules/12_fastapi_complete/sqlalchemy_integration/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/exercise/exercise_01.py rename to modules/12_fastapi_complete/sqlalchemy_integration/exercise/exercise_01.py diff --git a/12_fastapi_complete/sqlalchemy_integration/references/links.md b/modules/12_fastapi_complete/sqlalchemy_integration/references/links.md similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/references/links.md rename to modules/12_fastapi_complete/sqlalchemy_integration/references/links.md diff --git a/12_fastapi_complete/sqlalchemy_integration/tests/test_basic.py b/modules/12_fastapi_complete/sqlalchemy_integration/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/sqlalchemy_integration/tests/test_basic.py rename to modules/12_fastapi_complete/sqlalchemy_integration/tests/test_basic.py diff --git a/12_fastapi_complete/testing_fastapi/README.md b/modules/12_fastapi_complete/testing_fastapi/README.md similarity index 100% rename from 12_fastapi_complete/testing_fastapi/README.md rename to modules/12_fastapi_complete/testing_fastapi/README.md diff --git a/12_fastapi_complete/testing_fastapi/examples/example_basic.py b/modules/12_fastapi_complete/testing_fastapi/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/testing_fastapi/examples/example_basic.py rename to modules/12_fastapi_complete/testing_fastapi/examples/example_basic.py diff --git a/12_fastapi_complete/testing_fastapi/exercise/exercise_01.py b/modules/12_fastapi_complete/testing_fastapi/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/testing_fastapi/exercise/exercise_01.py rename to modules/12_fastapi_complete/testing_fastapi/exercise/exercise_01.py diff --git a/12_fastapi_complete/testing_fastapi/references/links.md b/modules/12_fastapi_complete/testing_fastapi/references/links.md similarity index 100% rename from 12_fastapi_complete/testing_fastapi/references/links.md rename to modules/12_fastapi_complete/testing_fastapi/references/links.md diff --git a/12_fastapi_complete/testing_fastapi/tests/test_basic.py b/modules/12_fastapi_complete/testing_fastapi/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/testing_fastapi/tests/test_basic.py rename to modules/12_fastapi_complete/testing_fastapi/tests/test_basic.py diff --git a/12_fastapi_complete/uvicorn_gunicorn/README.md b/modules/12_fastapi_complete/uvicorn_gunicorn/README.md similarity index 100% rename from 12_fastapi_complete/uvicorn_gunicorn/README.md rename to modules/12_fastapi_complete/uvicorn_gunicorn/README.md diff --git a/12_fastapi_complete/uvicorn_gunicorn/examples/example_basic.py b/modules/12_fastapi_complete/uvicorn_gunicorn/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/uvicorn_gunicorn/examples/example_basic.py rename to modules/12_fastapi_complete/uvicorn_gunicorn/examples/example_basic.py diff --git a/12_fastapi_complete/uvicorn_gunicorn/exercise/exercise_01.py b/modules/12_fastapi_complete/uvicorn_gunicorn/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/uvicorn_gunicorn/exercise/exercise_01.py rename to modules/12_fastapi_complete/uvicorn_gunicorn/exercise/exercise_01.py diff --git a/12_fastapi_complete/uvicorn_gunicorn/references/links.md b/modules/12_fastapi_complete/uvicorn_gunicorn/references/links.md similarity index 100% rename from 12_fastapi_complete/uvicorn_gunicorn/references/links.md rename to modules/12_fastapi_complete/uvicorn_gunicorn/references/links.md diff --git a/12_fastapi_complete/uvicorn_gunicorn/tests/test_basic.py b/modules/12_fastapi_complete/uvicorn_gunicorn/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/uvicorn_gunicorn/tests/test_basic.py rename to modules/12_fastapi_complete/uvicorn_gunicorn/tests/test_basic.py diff --git a/12_fastapi_complete/websockets/README.md b/modules/12_fastapi_complete/websockets/README.md similarity index 100% rename from 12_fastapi_complete/websockets/README.md rename to modules/12_fastapi_complete/websockets/README.md diff --git a/12_fastapi_complete/websockets/examples/example_basic.py b/modules/12_fastapi_complete/websockets/examples/example_basic.py similarity index 100% rename from 12_fastapi_complete/websockets/examples/example_basic.py rename to modules/12_fastapi_complete/websockets/examples/example_basic.py diff --git a/12_fastapi_complete/websockets/exercise/exercise_01.py b/modules/12_fastapi_complete/websockets/exercise/exercise_01.py similarity index 100% rename from 12_fastapi_complete/websockets/exercise/exercise_01.py rename to modules/12_fastapi_complete/websockets/exercise/exercise_01.py diff --git a/12_fastapi_complete/websockets/references/links.md b/modules/12_fastapi_complete/websockets/references/links.md similarity index 100% rename from 12_fastapi_complete/websockets/references/links.md rename to modules/12_fastapi_complete/websockets/references/links.md diff --git a/12_fastapi_complete/websockets/tests/test_basic.py b/modules/12_fastapi_complete/websockets/tests/test_basic.py similarity index 100% rename from 12_fastapi_complete/websockets/tests/test_basic.py rename to modules/12_fastapi_complete/websockets/tests/test_basic.py diff --git a/13_backend_ecosystem/README.md b/modules/13_backend_ecosystem/README.md similarity index 100% rename from 13_backend_ecosystem/README.md rename to modules/13_backend_ecosystem/README.md diff --git a/13_backend_ecosystem/api_versioning/README.md b/modules/13_backend_ecosystem/api_versioning/README.md similarity index 100% rename from 13_backend_ecosystem/api_versioning/README.md rename to modules/13_backend_ecosystem/api_versioning/README.md diff --git a/13_backend_ecosystem/api_versioning/examples/example_basic.py b/modules/13_backend_ecosystem/api_versioning/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/api_versioning/examples/example_basic.py rename to modules/13_backend_ecosystem/api_versioning/examples/example_basic.py diff --git a/13_backend_ecosystem/api_versioning/exercise/exercise_01.py b/modules/13_backend_ecosystem/api_versioning/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/api_versioning/exercise/exercise_01.py rename to modules/13_backend_ecosystem/api_versioning/exercise/exercise_01.py diff --git a/13_backend_ecosystem/api_versioning/references/links.md b/modules/13_backend_ecosystem/api_versioning/references/links.md similarity index 100% rename from 13_backend_ecosystem/api_versioning/references/links.md rename to modules/13_backend_ecosystem/api_versioning/references/links.md diff --git a/13_backend_ecosystem/api_versioning/tests/test_basic.py b/modules/13_backend_ecosystem/api_versioning/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/api_versioning/tests/test_basic.py rename to modules/13_backend_ecosystem/api_versioning/tests/test_basic.py diff --git a/13_backend_ecosystem/arq_async_tasks/README.md b/modules/13_backend_ecosystem/arq_async_tasks/README.md similarity index 100% rename from 13_backend_ecosystem/arq_async_tasks/README.md rename to modules/13_backend_ecosystem/arq_async_tasks/README.md diff --git a/13_backend_ecosystem/arq_async_tasks/examples/example_basic.py b/modules/13_backend_ecosystem/arq_async_tasks/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/arq_async_tasks/examples/example_basic.py rename to modules/13_backend_ecosystem/arq_async_tasks/examples/example_basic.py diff --git a/13_backend_ecosystem/arq_async_tasks/exercise/exercise_01.py b/modules/13_backend_ecosystem/arq_async_tasks/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/arq_async_tasks/exercise/exercise_01.py rename to modules/13_backend_ecosystem/arq_async_tasks/exercise/exercise_01.py diff --git a/13_backend_ecosystem/arq_async_tasks/references/links.md b/modules/13_backend_ecosystem/arq_async_tasks/references/links.md similarity index 100% rename from 13_backend_ecosystem/arq_async_tasks/references/links.md rename to modules/13_backend_ecosystem/arq_async_tasks/references/links.md diff --git a/13_backend_ecosystem/arq_async_tasks/tests/test_basic.py b/modules/13_backend_ecosystem/arq_async_tasks/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/arq_async_tasks/tests/test_basic.py rename to modules/13_backend_ecosystem/arq_async_tasks/tests/test_basic.py diff --git a/13_backend_ecosystem/celery_intro/README.md b/modules/13_backend_ecosystem/celery_intro/README.md similarity index 100% rename from 13_backend_ecosystem/celery_intro/README.md rename to modules/13_backend_ecosystem/celery_intro/README.md diff --git a/13_backend_ecosystem/celery_intro/examples/example_basic.py b/modules/13_backend_ecosystem/celery_intro/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/celery_intro/examples/example_basic.py rename to modules/13_backend_ecosystem/celery_intro/examples/example_basic.py diff --git a/13_backend_ecosystem/celery_intro/exercise/exercise_01.py b/modules/13_backend_ecosystem/celery_intro/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/celery_intro/exercise/exercise_01.py rename to modules/13_backend_ecosystem/celery_intro/exercise/exercise_01.py diff --git a/13_backend_ecosystem/celery_intro/references/links.md b/modules/13_backend_ecosystem/celery_intro/references/links.md similarity index 100% rename from 13_backend_ecosystem/celery_intro/references/links.md rename to modules/13_backend_ecosystem/celery_intro/references/links.md diff --git a/13_backend_ecosystem/celery_intro/tests/test_basic.py b/modules/13_backend_ecosystem/celery_intro/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/celery_intro/tests/test_basic.py rename to modules/13_backend_ecosystem/celery_intro/tests/test_basic.py diff --git a/13_backend_ecosystem/configuration_management/README.md b/modules/13_backend_ecosystem/configuration_management/README.md similarity index 100% rename from 13_backend_ecosystem/configuration_management/README.md rename to modules/13_backend_ecosystem/configuration_management/README.md diff --git a/13_backend_ecosystem/configuration_management/examples/example_basic.py b/modules/13_backend_ecosystem/configuration_management/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/configuration_management/examples/example_basic.py rename to modules/13_backend_ecosystem/configuration_management/examples/example_basic.py diff --git a/13_backend_ecosystem/configuration_management/exercise/exercise_01.py b/modules/13_backend_ecosystem/configuration_management/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/configuration_management/exercise/exercise_01.py rename to modules/13_backend_ecosystem/configuration_management/exercise/exercise_01.py diff --git a/13_backend_ecosystem/configuration_management/references/links.md b/modules/13_backend_ecosystem/configuration_management/references/links.md similarity index 100% rename from 13_backend_ecosystem/configuration_management/references/links.md rename to modules/13_backend_ecosystem/configuration_management/references/links.md diff --git a/13_backend_ecosystem/configuration_management/tests/test_basic.py b/modules/13_backend_ecosystem/configuration_management/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/configuration_management/tests/test_basic.py rename to modules/13_backend_ecosystem/configuration_management/tests/test_basic.py diff --git a/13_backend_ecosystem/elasticsearch_optional/README.md b/modules/13_backend_ecosystem/elasticsearch_optional/README.md similarity index 100% rename from 13_backend_ecosystem/elasticsearch_optional/README.md rename to modules/13_backend_ecosystem/elasticsearch_optional/README.md diff --git a/13_backend_ecosystem/elasticsearch_optional/examples/example_basic.py b/modules/13_backend_ecosystem/elasticsearch_optional/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/elasticsearch_optional/examples/example_basic.py rename to modules/13_backend_ecosystem/elasticsearch_optional/examples/example_basic.py diff --git a/13_backend_ecosystem/elasticsearch_optional/exercise/exercise_01.py b/modules/13_backend_ecosystem/elasticsearch_optional/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/elasticsearch_optional/exercise/exercise_01.py rename to modules/13_backend_ecosystem/elasticsearch_optional/exercise/exercise_01.py diff --git a/13_backend_ecosystem/elasticsearch_optional/references/links.md b/modules/13_backend_ecosystem/elasticsearch_optional/references/links.md similarity index 100% rename from 13_backend_ecosystem/elasticsearch_optional/references/links.md rename to modules/13_backend_ecosystem/elasticsearch_optional/references/links.md diff --git a/13_backend_ecosystem/elasticsearch_optional/tests/test_basic.py b/modules/13_backend_ecosystem/elasticsearch_optional/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/elasticsearch_optional/tests/test_basic.py rename to modules/13_backend_ecosystem/elasticsearch_optional/tests/test_basic.py diff --git a/13_backend_ecosystem/graphql_schemas_optional/README.md b/modules/13_backend_ecosystem/graphql_schemas_optional/README.md similarity index 100% rename from 13_backend_ecosystem/graphql_schemas_optional/README.md rename to modules/13_backend_ecosystem/graphql_schemas_optional/README.md diff --git a/13_backend_ecosystem/graphql_schemas_optional/examples/example_basic.py b/modules/13_backend_ecosystem/graphql_schemas_optional/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/graphql_schemas_optional/examples/example_basic.py rename to modules/13_backend_ecosystem/graphql_schemas_optional/examples/example_basic.py diff --git a/13_backend_ecosystem/graphql_schemas_optional/exercise/exercise_01.py b/modules/13_backend_ecosystem/graphql_schemas_optional/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/graphql_schemas_optional/exercise/exercise_01.py rename to modules/13_backend_ecosystem/graphql_schemas_optional/exercise/exercise_01.py diff --git a/13_backend_ecosystem/graphql_schemas_optional/references/links.md b/modules/13_backend_ecosystem/graphql_schemas_optional/references/links.md similarity index 100% rename from 13_backend_ecosystem/graphql_schemas_optional/references/links.md rename to modules/13_backend_ecosystem/graphql_schemas_optional/references/links.md diff --git a/13_backend_ecosystem/graphql_schemas_optional/tests/test_basic.py b/modules/13_backend_ecosystem/graphql_schemas_optional/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/graphql_schemas_optional/tests/test_basic.py rename to modules/13_backend_ecosystem/graphql_schemas_optional/tests/test_basic.py diff --git a/13_backend_ecosystem/grpc_intro/README.md b/modules/13_backend_ecosystem/grpc_intro/README.md similarity index 100% rename from 13_backend_ecosystem/grpc_intro/README.md rename to modules/13_backend_ecosystem/grpc_intro/README.md diff --git a/13_backend_ecosystem/grpc_intro/examples/example_basic.py b/modules/13_backend_ecosystem/grpc_intro/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/grpc_intro/examples/example_basic.py rename to modules/13_backend_ecosystem/grpc_intro/examples/example_basic.py diff --git a/13_backend_ecosystem/grpc_intro/exercise/exercise_01.py b/modules/13_backend_ecosystem/grpc_intro/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/grpc_intro/exercise/exercise_01.py rename to modules/13_backend_ecosystem/grpc_intro/exercise/exercise_01.py diff --git a/13_backend_ecosystem/grpc_intro/references/links.md b/modules/13_backend_ecosystem/grpc_intro/references/links.md similarity index 100% rename from 13_backend_ecosystem/grpc_intro/references/links.md rename to modules/13_backend_ecosystem/grpc_intro/references/links.md diff --git a/13_backend_ecosystem/grpc_intro/tests/test_basic.py b/modules/13_backend_ecosystem/grpc_intro/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/grpc_intro/tests/test_basic.py rename to modules/13_backend_ecosystem/grpc_intro/tests/test_basic.py diff --git a/13_backend_ecosystem/kafka_basics/README.md b/modules/13_backend_ecosystem/kafka_basics/README.md similarity index 100% rename from 13_backend_ecosystem/kafka_basics/README.md rename to modules/13_backend_ecosystem/kafka_basics/README.md diff --git a/13_backend_ecosystem/kafka_basics/examples/example_basic.py b/modules/13_backend_ecosystem/kafka_basics/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/kafka_basics/examples/example_basic.py rename to modules/13_backend_ecosystem/kafka_basics/examples/example_basic.py diff --git a/13_backend_ecosystem/kafka_basics/exercise/exercise_01.py b/modules/13_backend_ecosystem/kafka_basics/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/kafka_basics/exercise/exercise_01.py rename to modules/13_backend_ecosystem/kafka_basics/exercise/exercise_01.py diff --git a/13_backend_ecosystem/kafka_basics/references/links.md b/modules/13_backend_ecosystem/kafka_basics/references/links.md similarity index 100% rename from 13_backend_ecosystem/kafka_basics/references/links.md rename to modules/13_backend_ecosystem/kafka_basics/references/links.md diff --git a/13_backend_ecosystem/kafka_basics/tests/test_basic.py b/modules/13_backend_ecosystem/kafka_basics/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/kafka_basics/tests/test_basic.py rename to modules/13_backend_ecosystem/kafka_basics/tests/test_basic.py diff --git a/13_backend_ecosystem/opentelemetry/README.md b/modules/13_backend_ecosystem/opentelemetry/README.md similarity index 100% rename from 13_backend_ecosystem/opentelemetry/README.md rename to modules/13_backend_ecosystem/opentelemetry/README.md diff --git a/13_backend_ecosystem/opentelemetry/examples/example_basic.py b/modules/13_backend_ecosystem/opentelemetry/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/opentelemetry/examples/example_basic.py rename to modules/13_backend_ecosystem/opentelemetry/examples/example_basic.py diff --git a/13_backend_ecosystem/opentelemetry/exercise/exercise_01.py b/modules/13_backend_ecosystem/opentelemetry/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/opentelemetry/exercise/exercise_01.py rename to modules/13_backend_ecosystem/opentelemetry/exercise/exercise_01.py diff --git a/13_backend_ecosystem/opentelemetry/references/links.md b/modules/13_backend_ecosystem/opentelemetry/references/links.md similarity index 100% rename from 13_backend_ecosystem/opentelemetry/references/links.md rename to modules/13_backend_ecosystem/opentelemetry/references/links.md diff --git a/13_backend_ecosystem/opentelemetry/tests/test_basic.py b/modules/13_backend_ecosystem/opentelemetry/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/opentelemetry/tests/test_basic.py rename to modules/13_backend_ecosystem/opentelemetry/tests/test_basic.py diff --git a/13_backend_ecosystem/postgresql_advanced/README.md b/modules/13_backend_ecosystem/postgresql_advanced/README.md similarity index 100% rename from 13_backend_ecosystem/postgresql_advanced/README.md rename to modules/13_backend_ecosystem/postgresql_advanced/README.md diff --git a/13_backend_ecosystem/postgresql_advanced/examples/example_basic.py b/modules/13_backend_ecosystem/postgresql_advanced/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/postgresql_advanced/examples/example_basic.py rename to modules/13_backend_ecosystem/postgresql_advanced/examples/example_basic.py diff --git a/13_backend_ecosystem/postgresql_advanced/exercise/exercise_01.py b/modules/13_backend_ecosystem/postgresql_advanced/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/postgresql_advanced/exercise/exercise_01.py rename to modules/13_backend_ecosystem/postgresql_advanced/exercise/exercise_01.py diff --git a/13_backend_ecosystem/postgresql_advanced/references/links.md b/modules/13_backend_ecosystem/postgresql_advanced/references/links.md similarity index 100% rename from 13_backend_ecosystem/postgresql_advanced/references/links.md rename to modules/13_backend_ecosystem/postgresql_advanced/references/links.md diff --git a/13_backend_ecosystem/postgresql_advanced/tests/test_basic.py b/modules/13_backend_ecosystem/postgresql_advanced/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/postgresql_advanced/tests/test_basic.py rename to modules/13_backend_ecosystem/postgresql_advanced/tests/test_basic.py diff --git a/13_backend_ecosystem/prometheus_metrics/README.md b/modules/13_backend_ecosystem/prometheus_metrics/README.md similarity index 100% rename from 13_backend_ecosystem/prometheus_metrics/README.md rename to modules/13_backend_ecosystem/prometheus_metrics/README.md diff --git a/13_backend_ecosystem/prometheus_metrics/examples/example_basic.py b/modules/13_backend_ecosystem/prometheus_metrics/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/prometheus_metrics/examples/example_basic.py rename to modules/13_backend_ecosystem/prometheus_metrics/examples/example_basic.py diff --git a/13_backend_ecosystem/prometheus_metrics/exercise/exercise_01.py b/modules/13_backend_ecosystem/prometheus_metrics/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/prometheus_metrics/exercise/exercise_01.py rename to modules/13_backend_ecosystem/prometheus_metrics/exercise/exercise_01.py diff --git a/13_backend_ecosystem/prometheus_metrics/references/links.md b/modules/13_backend_ecosystem/prometheus_metrics/references/links.md similarity index 100% rename from 13_backend_ecosystem/prometheus_metrics/references/links.md rename to modules/13_backend_ecosystem/prometheus_metrics/references/links.md diff --git a/13_backend_ecosystem/prometheus_metrics/tests/test_basic.py b/modules/13_backend_ecosystem/prometheus_metrics/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/prometheus_metrics/tests/test_basic.py rename to modules/13_backend_ecosystem/prometheus_metrics/tests/test_basic.py diff --git a/13_backend_ecosystem/protobuf/README.md b/modules/13_backend_ecosystem/protobuf/README.md similarity index 100% rename from 13_backend_ecosystem/protobuf/README.md rename to modules/13_backend_ecosystem/protobuf/README.md diff --git a/13_backend_ecosystem/protobuf/examples/example_basic.py b/modules/13_backend_ecosystem/protobuf/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/protobuf/examples/example_basic.py rename to modules/13_backend_ecosystem/protobuf/examples/example_basic.py diff --git a/13_backend_ecosystem/protobuf/exercise/exercise_01.py b/modules/13_backend_ecosystem/protobuf/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/protobuf/exercise/exercise_01.py rename to modules/13_backend_ecosystem/protobuf/exercise/exercise_01.py diff --git a/13_backend_ecosystem/protobuf/references/links.md b/modules/13_backend_ecosystem/protobuf/references/links.md similarity index 100% rename from 13_backend_ecosystem/protobuf/references/links.md rename to modules/13_backend_ecosystem/protobuf/references/links.md diff --git a/13_backend_ecosystem/protobuf/tests/test_basic.py b/modules/13_backend_ecosystem/protobuf/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/protobuf/tests/test_basic.py rename to modules/13_backend_ecosystem/protobuf/tests/test_basic.py diff --git a/13_backend_ecosystem/rabbitmq_basics/README.md b/modules/13_backend_ecosystem/rabbitmq_basics/README.md similarity index 100% rename from 13_backend_ecosystem/rabbitmq_basics/README.md rename to modules/13_backend_ecosystem/rabbitmq_basics/README.md diff --git a/13_backend_ecosystem/rabbitmq_basics/examples/example_basic.py b/modules/13_backend_ecosystem/rabbitmq_basics/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/rabbitmq_basics/examples/example_basic.py rename to modules/13_backend_ecosystem/rabbitmq_basics/examples/example_basic.py diff --git a/13_backend_ecosystem/rabbitmq_basics/exercise/exercise_01.py b/modules/13_backend_ecosystem/rabbitmq_basics/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/rabbitmq_basics/exercise/exercise_01.py rename to modules/13_backend_ecosystem/rabbitmq_basics/exercise/exercise_01.py diff --git a/13_backend_ecosystem/rabbitmq_basics/references/links.md b/modules/13_backend_ecosystem/rabbitmq_basics/references/links.md similarity index 100% rename from 13_backend_ecosystem/rabbitmq_basics/references/links.md rename to modules/13_backend_ecosystem/rabbitmq_basics/references/links.md diff --git a/13_backend_ecosystem/rabbitmq_basics/tests/test_basic.py b/modules/13_backend_ecosystem/rabbitmq_basics/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/rabbitmq_basics/tests/test_basic.py rename to modules/13_backend_ecosystem/rabbitmq_basics/tests/test_basic.py diff --git a/13_backend_ecosystem/redis_basics/README.md b/modules/13_backend_ecosystem/redis_basics/README.md similarity index 100% rename from 13_backend_ecosystem/redis_basics/README.md rename to modules/13_backend_ecosystem/redis_basics/README.md diff --git a/13_backend_ecosystem/redis_basics/examples/example_basic.py b/modules/13_backend_ecosystem/redis_basics/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_basics/examples/example_basic.py rename to modules/13_backend_ecosystem/redis_basics/examples/example_basic.py diff --git a/13_backend_ecosystem/redis_basics/exercise/exercise_01.py b/modules/13_backend_ecosystem/redis_basics/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/redis_basics/exercise/exercise_01.py rename to modules/13_backend_ecosystem/redis_basics/exercise/exercise_01.py diff --git a/13_backend_ecosystem/redis_basics/references/links.md b/modules/13_backend_ecosystem/redis_basics/references/links.md similarity index 100% rename from 13_backend_ecosystem/redis_basics/references/links.md rename to modules/13_backend_ecosystem/redis_basics/references/links.md diff --git a/13_backend_ecosystem/redis_basics/tests/test_basic.py b/modules/13_backend_ecosystem/redis_basics/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_basics/tests/test_basic.py rename to modules/13_backend_ecosystem/redis_basics/tests/test_basic.py diff --git a/13_backend_ecosystem/redis_patterns/README.md b/modules/13_backend_ecosystem/redis_patterns/README.md similarity index 100% rename from 13_backend_ecosystem/redis_patterns/README.md rename to modules/13_backend_ecosystem/redis_patterns/README.md diff --git a/13_backend_ecosystem/redis_patterns/examples/example_basic.py b/modules/13_backend_ecosystem/redis_patterns/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_patterns/examples/example_basic.py rename to modules/13_backend_ecosystem/redis_patterns/examples/example_basic.py diff --git a/13_backend_ecosystem/redis_patterns/exercise/exercise_01.py b/modules/13_backend_ecosystem/redis_patterns/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/redis_patterns/exercise/exercise_01.py rename to modules/13_backend_ecosystem/redis_patterns/exercise/exercise_01.py diff --git a/13_backend_ecosystem/redis_patterns/references/links.md b/modules/13_backend_ecosystem/redis_patterns/references/links.md similarity index 100% rename from 13_backend_ecosystem/redis_patterns/references/links.md rename to modules/13_backend_ecosystem/redis_patterns/references/links.md diff --git a/13_backend_ecosystem/redis_patterns/tests/test_basic.py b/modules/13_backend_ecosystem/redis_patterns/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_patterns/tests/test_basic.py rename to modules/13_backend_ecosystem/redis_patterns/tests/test_basic.py diff --git a/13_backend_ecosystem/redis_pubsub/README.md b/modules/13_backend_ecosystem/redis_pubsub/README.md similarity index 100% rename from 13_backend_ecosystem/redis_pubsub/README.md rename to modules/13_backend_ecosystem/redis_pubsub/README.md diff --git a/13_backend_ecosystem/redis_pubsub/examples/example_basic.py b/modules/13_backend_ecosystem/redis_pubsub/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_pubsub/examples/example_basic.py rename to modules/13_backend_ecosystem/redis_pubsub/examples/example_basic.py diff --git a/13_backend_ecosystem/redis_pubsub/exercise/exercise_01.py b/modules/13_backend_ecosystem/redis_pubsub/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/redis_pubsub/exercise/exercise_01.py rename to modules/13_backend_ecosystem/redis_pubsub/exercise/exercise_01.py diff --git a/13_backend_ecosystem/redis_pubsub/references/links.md b/modules/13_backend_ecosystem/redis_pubsub/references/links.md similarity index 100% rename from 13_backend_ecosystem/redis_pubsub/references/links.md rename to modules/13_backend_ecosystem/redis_pubsub/references/links.md diff --git a/13_backend_ecosystem/redis_pubsub/tests/test_basic.py b/modules/13_backend_ecosystem/redis_pubsub/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/redis_pubsub/tests/test_basic.py rename to modules/13_backend_ecosystem/redis_pubsub/tests/test_basic.py diff --git a/13_backend_ecosystem/rest_api_design/README.md b/modules/13_backend_ecosystem/rest_api_design/README.md similarity index 100% rename from 13_backend_ecosystem/rest_api_design/README.md rename to modules/13_backend_ecosystem/rest_api_design/README.md diff --git a/13_backend_ecosystem/rest_api_design/examples/example_basic.py b/modules/13_backend_ecosystem/rest_api_design/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/rest_api_design/examples/example_basic.py rename to modules/13_backend_ecosystem/rest_api_design/examples/example_basic.py diff --git a/13_backend_ecosystem/rest_api_design/exercise/exercise_01.py b/modules/13_backend_ecosystem/rest_api_design/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/rest_api_design/exercise/exercise_01.py rename to modules/13_backend_ecosystem/rest_api_design/exercise/exercise_01.py diff --git a/13_backend_ecosystem/rest_api_design/references/links.md b/modules/13_backend_ecosystem/rest_api_design/references/links.md similarity index 100% rename from 13_backend_ecosystem/rest_api_design/references/links.md rename to modules/13_backend_ecosystem/rest_api_design/references/links.md diff --git a/13_backend_ecosystem/rest_api_design/tests/test_basic.py b/modules/13_backend_ecosystem/rest_api_design/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/rest_api_design/tests/test_basic.py rename to modules/13_backend_ecosystem/rest_api_design/tests/test_basic.py diff --git a/13_backend_ecosystem/sqlalchemy_2_intro/README.md b/modules/13_backend_ecosystem/sqlalchemy_2_intro/README.md similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_2_intro/README.md rename to modules/13_backend_ecosystem/sqlalchemy_2_intro/README.md diff --git a/13_backend_ecosystem/sqlalchemy_2_intro/examples/example_basic.py b/modules/13_backend_ecosystem/sqlalchemy_2_intro/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_2_intro/examples/example_basic.py rename to modules/13_backend_ecosystem/sqlalchemy_2_intro/examples/example_basic.py diff --git a/13_backend_ecosystem/sqlalchemy_2_intro/exercise/exercise_01.py b/modules/13_backend_ecosystem/sqlalchemy_2_intro/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_2_intro/exercise/exercise_01.py rename to modules/13_backend_ecosystem/sqlalchemy_2_intro/exercise/exercise_01.py diff --git a/13_backend_ecosystem/sqlalchemy_2_intro/references/links.md b/modules/13_backend_ecosystem/sqlalchemy_2_intro/references/links.md similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_2_intro/references/links.md rename to modules/13_backend_ecosystem/sqlalchemy_2_intro/references/links.md diff --git a/13_backend_ecosystem/sqlalchemy_2_intro/tests/test_basic.py b/modules/13_backend_ecosystem/sqlalchemy_2_intro/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_2_intro/tests/test_basic.py rename to modules/13_backend_ecosystem/sqlalchemy_2_intro/tests/test_basic.py diff --git a/13_backend_ecosystem/sqlalchemy_async/README.md b/modules/13_backend_ecosystem/sqlalchemy_async/README.md similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_async/README.md rename to modules/13_backend_ecosystem/sqlalchemy_async/README.md diff --git a/13_backend_ecosystem/sqlalchemy_async/examples/example_basic.py b/modules/13_backend_ecosystem/sqlalchemy_async/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_async/examples/example_basic.py rename to modules/13_backend_ecosystem/sqlalchemy_async/examples/example_basic.py diff --git a/13_backend_ecosystem/sqlalchemy_async/exercise/exercise_01.py b/modules/13_backend_ecosystem/sqlalchemy_async/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_async/exercise/exercise_01.py rename to modules/13_backend_ecosystem/sqlalchemy_async/exercise/exercise_01.py diff --git a/13_backend_ecosystem/sqlalchemy_async/references/links.md b/modules/13_backend_ecosystem/sqlalchemy_async/references/links.md similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_async/references/links.md rename to modules/13_backend_ecosystem/sqlalchemy_async/references/links.md diff --git a/13_backend_ecosystem/sqlalchemy_async/tests/test_basic.py b/modules/13_backend_ecosystem/sqlalchemy_async/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/sqlalchemy_async/tests/test_basic.py rename to modules/13_backend_ecosystem/sqlalchemy_async/tests/test_basic.py diff --git a/13_backend_ecosystem/structured_logging/README.md b/modules/13_backend_ecosystem/structured_logging/README.md similarity index 100% rename from 13_backend_ecosystem/structured_logging/README.md rename to modules/13_backend_ecosystem/structured_logging/README.md diff --git a/13_backend_ecosystem/structured_logging/examples/example_basic.py b/modules/13_backend_ecosystem/structured_logging/examples/example_basic.py similarity index 100% rename from 13_backend_ecosystem/structured_logging/examples/example_basic.py rename to modules/13_backend_ecosystem/structured_logging/examples/example_basic.py diff --git a/13_backend_ecosystem/structured_logging/exercise/exercise_01.py b/modules/13_backend_ecosystem/structured_logging/exercise/exercise_01.py similarity index 100% rename from 13_backend_ecosystem/structured_logging/exercise/exercise_01.py rename to modules/13_backend_ecosystem/structured_logging/exercise/exercise_01.py diff --git a/13_backend_ecosystem/structured_logging/references/links.md b/modules/13_backend_ecosystem/structured_logging/references/links.md similarity index 100% rename from 13_backend_ecosystem/structured_logging/references/links.md rename to modules/13_backend_ecosystem/structured_logging/references/links.md diff --git a/13_backend_ecosystem/structured_logging/tests/test_basic.py b/modules/13_backend_ecosystem/structured_logging/tests/test_basic.py similarity index 100% rename from 13_backend_ecosystem/structured_logging/tests/test_basic.py rename to modules/13_backend_ecosystem/structured_logging/tests/test_basic.py diff --git a/14_advanced_python_2026/01_pyo3_introduction/README.md b/modules/14_advanced_python_2026/01_pyo3_introduction/README.md similarity index 100% rename from 14_advanced_python_2026/01_pyo3_introduction/README.md rename to modules/14_advanced_python_2026/01_pyo3_introduction/README.md diff --git a/14_advanced_python_2026/01_pyo3_introduction/examples/example_basic.py b/modules/14_advanced_python_2026/01_pyo3_introduction/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/01_pyo3_introduction/examples/example_basic.py rename to modules/14_advanced_python_2026/01_pyo3_introduction/examples/example_basic.py diff --git a/14_advanced_python_2026/01_pyo3_introduction/exercise/exercise_01.py b/modules/14_advanced_python_2026/01_pyo3_introduction/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/01_pyo3_introduction/exercise/exercise_01.py rename to modules/14_advanced_python_2026/01_pyo3_introduction/exercise/exercise_01.py diff --git a/14_advanced_python_2026/01_pyo3_introduction/references/links.md b/modules/14_advanced_python_2026/01_pyo3_introduction/references/links.md similarity index 100% rename from 14_advanced_python_2026/01_pyo3_introduction/references/links.md rename to modules/14_advanced_python_2026/01_pyo3_introduction/references/links.md diff --git a/14_advanced_python_2026/01_pyo3_introduction/tests/test_basic.py b/modules/14_advanced_python_2026/01_pyo3_introduction/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/01_pyo3_introduction/tests/test_basic.py rename to modules/14_advanced_python_2026/01_pyo3_introduction/tests/test_basic.py diff --git a/14_advanced_python_2026/02_rust_toolchain_maturin/README.md b/modules/14_advanced_python_2026/02_rust_toolchain_maturin/README.md similarity index 100% rename from 14_advanced_python_2026/02_rust_toolchain_maturin/README.md rename to modules/14_advanced_python_2026/02_rust_toolchain_maturin/README.md diff --git a/14_advanced_python_2026/02_rust_toolchain_maturin/examples/example_basic.py b/modules/14_advanced_python_2026/02_rust_toolchain_maturin/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/02_rust_toolchain_maturin/examples/example_basic.py rename to modules/14_advanced_python_2026/02_rust_toolchain_maturin/examples/example_basic.py diff --git a/14_advanced_python_2026/02_rust_toolchain_maturin/exercise/exercise_01.py b/modules/14_advanced_python_2026/02_rust_toolchain_maturin/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/02_rust_toolchain_maturin/exercise/exercise_01.py rename to modules/14_advanced_python_2026/02_rust_toolchain_maturin/exercise/exercise_01.py diff --git a/14_advanced_python_2026/02_rust_toolchain_maturin/references/links.md b/modules/14_advanced_python_2026/02_rust_toolchain_maturin/references/links.md similarity index 100% rename from 14_advanced_python_2026/02_rust_toolchain_maturin/references/links.md rename to modules/14_advanced_python_2026/02_rust_toolchain_maturin/references/links.md diff --git a/14_advanced_python_2026/02_rust_toolchain_maturin/tests/test_basic.py b/modules/14_advanced_python_2026/02_rust_toolchain_maturin/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/02_rust_toolchain_maturin/tests/test_basic.py rename to modules/14_advanced_python_2026/02_rust_toolchain_maturin/tests/test_basic.py diff --git a/14_advanced_python_2026/03_first_rust_python_module/README.md b/modules/14_advanced_python_2026/03_first_rust_python_module/README.md similarity index 100% rename from 14_advanced_python_2026/03_first_rust_python_module/README.md rename to modules/14_advanced_python_2026/03_first_rust_python_module/README.md diff --git a/14_advanced_python_2026/03_first_rust_python_module/examples/example_basic.py b/modules/14_advanced_python_2026/03_first_rust_python_module/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/03_first_rust_python_module/examples/example_basic.py rename to modules/14_advanced_python_2026/03_first_rust_python_module/examples/example_basic.py diff --git a/14_advanced_python_2026/03_first_rust_python_module/exercise/exercise_01.py b/modules/14_advanced_python_2026/03_first_rust_python_module/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/03_first_rust_python_module/exercise/exercise_01.py rename to modules/14_advanced_python_2026/03_first_rust_python_module/exercise/exercise_01.py diff --git a/14_advanced_python_2026/03_first_rust_python_module/references/links.md b/modules/14_advanced_python_2026/03_first_rust_python_module/references/links.md similarity index 100% rename from 14_advanced_python_2026/03_first_rust_python_module/references/links.md rename to modules/14_advanced_python_2026/03_first_rust_python_module/references/links.md diff --git a/14_advanced_python_2026/03_first_rust_python_module/tests/test_basic.py b/modules/14_advanced_python_2026/03_first_rust_python_module/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/03_first_rust_python_module/tests/test_basic.py rename to modules/14_advanced_python_2026/03_first_rust_python_module/tests/test_basic.py diff --git a/14_advanced_python_2026/04_python_types_in_rust/README.md b/modules/14_advanced_python_2026/04_python_types_in_rust/README.md similarity index 100% rename from 14_advanced_python_2026/04_python_types_in_rust/README.md rename to modules/14_advanced_python_2026/04_python_types_in_rust/README.md diff --git a/14_advanced_python_2026/04_python_types_in_rust/examples/example_basic.py b/modules/14_advanced_python_2026/04_python_types_in_rust/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/04_python_types_in_rust/examples/example_basic.py rename to modules/14_advanced_python_2026/04_python_types_in_rust/examples/example_basic.py diff --git a/14_advanced_python_2026/04_python_types_in_rust/exercise/exercise_01.py b/modules/14_advanced_python_2026/04_python_types_in_rust/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/04_python_types_in_rust/exercise/exercise_01.py rename to modules/14_advanced_python_2026/04_python_types_in_rust/exercise/exercise_01.py diff --git a/14_advanced_python_2026/04_python_types_in_rust/references/links.md b/modules/14_advanced_python_2026/04_python_types_in_rust/references/links.md similarity index 100% rename from 14_advanced_python_2026/04_python_types_in_rust/references/links.md rename to modules/14_advanced_python_2026/04_python_types_in_rust/references/links.md diff --git a/14_advanced_python_2026/04_python_types_in_rust/tests/test_basic.py b/modules/14_advanced_python_2026/04_python_types_in_rust/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/04_python_types_in_rust/tests/test_basic.py rename to modules/14_advanced_python_2026/04_python_types_in_rust/tests/test_basic.py diff --git a/14_advanced_python_2026/05_error_handling_pyresult/README.md b/modules/14_advanced_python_2026/05_error_handling_pyresult/README.md similarity index 100% rename from 14_advanced_python_2026/05_error_handling_pyresult/README.md rename to modules/14_advanced_python_2026/05_error_handling_pyresult/README.md diff --git a/14_advanced_python_2026/05_error_handling_pyresult/examples/example_basic.py b/modules/14_advanced_python_2026/05_error_handling_pyresult/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/05_error_handling_pyresult/examples/example_basic.py rename to modules/14_advanced_python_2026/05_error_handling_pyresult/examples/example_basic.py diff --git a/14_advanced_python_2026/05_error_handling_pyresult/exercise/exercise_01.py b/modules/14_advanced_python_2026/05_error_handling_pyresult/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/05_error_handling_pyresult/exercise/exercise_01.py rename to modules/14_advanced_python_2026/05_error_handling_pyresult/exercise/exercise_01.py diff --git a/14_advanced_python_2026/05_error_handling_pyresult/references/links.md b/modules/14_advanced_python_2026/05_error_handling_pyresult/references/links.md similarity index 100% rename from 14_advanced_python_2026/05_error_handling_pyresult/references/links.md rename to modules/14_advanced_python_2026/05_error_handling_pyresult/references/links.md diff --git a/14_advanced_python_2026/05_error_handling_pyresult/tests/test_basic.py b/modules/14_advanced_python_2026/05_error_handling_pyresult/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/05_error_handling_pyresult/tests/test_basic.py rename to modules/14_advanced_python_2026/05_error_handling_pyresult/tests/test_basic.py diff --git a/14_advanced_python_2026/06_automatic_conversions/README.md b/modules/14_advanced_python_2026/06_automatic_conversions/README.md similarity index 100% rename from 14_advanced_python_2026/06_automatic_conversions/README.md rename to modules/14_advanced_python_2026/06_automatic_conversions/README.md diff --git a/14_advanced_python_2026/06_automatic_conversions/examples/example_basic.py b/modules/14_advanced_python_2026/06_automatic_conversions/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/06_automatic_conversions/examples/example_basic.py rename to modules/14_advanced_python_2026/06_automatic_conversions/examples/example_basic.py diff --git a/14_advanced_python_2026/06_automatic_conversions/exercise/exercise_01.py b/modules/14_advanced_python_2026/06_automatic_conversions/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/06_automatic_conversions/exercise/exercise_01.py rename to modules/14_advanced_python_2026/06_automatic_conversions/exercise/exercise_01.py diff --git a/14_advanced_python_2026/06_automatic_conversions/references/links.md b/modules/14_advanced_python_2026/06_automatic_conversions/references/links.md similarity index 100% rename from 14_advanced_python_2026/06_automatic_conversions/references/links.md rename to modules/14_advanced_python_2026/06_automatic_conversions/references/links.md diff --git a/14_advanced_python_2026/06_automatic_conversions/tests/test_basic.py b/modules/14_advanced_python_2026/06_automatic_conversions/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/06_automatic_conversions/tests/test_basic.py rename to modules/14_advanced_python_2026/06_automatic_conversions/tests/test_basic.py diff --git a/14_advanced_python_2026/07_python_classes_in_rust/README.md b/modules/14_advanced_python_2026/07_python_classes_in_rust/README.md similarity index 100% rename from 14_advanced_python_2026/07_python_classes_in_rust/README.md rename to modules/14_advanced_python_2026/07_python_classes_in_rust/README.md diff --git a/14_advanced_python_2026/07_python_classes_in_rust/examples/example_basic.py b/modules/14_advanced_python_2026/07_python_classes_in_rust/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/07_python_classes_in_rust/examples/example_basic.py rename to modules/14_advanced_python_2026/07_python_classes_in_rust/examples/example_basic.py diff --git a/14_advanced_python_2026/07_python_classes_in_rust/exercise/exercise_01.py b/modules/14_advanced_python_2026/07_python_classes_in_rust/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/07_python_classes_in_rust/exercise/exercise_01.py rename to modules/14_advanced_python_2026/07_python_classes_in_rust/exercise/exercise_01.py diff --git a/14_advanced_python_2026/07_python_classes_in_rust/references/links.md b/modules/14_advanced_python_2026/07_python_classes_in_rust/references/links.md similarity index 100% rename from 14_advanced_python_2026/07_python_classes_in_rust/references/links.md rename to modules/14_advanced_python_2026/07_python_classes_in_rust/references/links.md diff --git a/14_advanced_python_2026/07_python_classes_in_rust/tests/test_basic.py b/modules/14_advanced_python_2026/07_python_classes_in_rust/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/07_python_classes_in_rust/tests/test_basic.py rename to modules/14_advanced_python_2026/07_python_classes_in_rust/tests/test_basic.py diff --git a/14_advanced_python_2026/08_pymethods/README.md b/modules/14_advanced_python_2026/08_pymethods/README.md similarity index 100% rename from 14_advanced_python_2026/08_pymethods/README.md rename to modules/14_advanced_python_2026/08_pymethods/README.md diff --git a/14_advanced_python_2026/08_pymethods/examples/example_basic.py b/modules/14_advanced_python_2026/08_pymethods/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/08_pymethods/examples/example_basic.py rename to modules/14_advanced_python_2026/08_pymethods/examples/example_basic.py diff --git a/14_advanced_python_2026/08_pymethods/exercise/exercise_01.py b/modules/14_advanced_python_2026/08_pymethods/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/08_pymethods/exercise/exercise_01.py rename to modules/14_advanced_python_2026/08_pymethods/exercise/exercise_01.py diff --git a/14_advanced_python_2026/08_pymethods/references/links.md b/modules/14_advanced_python_2026/08_pymethods/references/links.md similarity index 100% rename from 14_advanced_python_2026/08_pymethods/references/links.md rename to modules/14_advanced_python_2026/08_pymethods/references/links.md diff --git a/14_advanced_python_2026/08_pymethods/tests/test_basic.py b/modules/14_advanced_python_2026/08_pymethods/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/08_pymethods/tests/test_basic.py rename to modules/14_advanced_python_2026/08_pymethods/tests/test_basic.py diff --git a/14_advanced_python_2026/09_properties_rust/README.md b/modules/14_advanced_python_2026/09_properties_rust/README.md similarity index 100% rename from 14_advanced_python_2026/09_properties_rust/README.md rename to modules/14_advanced_python_2026/09_properties_rust/README.md diff --git a/14_advanced_python_2026/09_properties_rust/examples/example_basic.py b/modules/14_advanced_python_2026/09_properties_rust/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/09_properties_rust/examples/example_basic.py rename to modules/14_advanced_python_2026/09_properties_rust/examples/example_basic.py diff --git a/14_advanced_python_2026/09_properties_rust/exercise/exercise_01.py b/modules/14_advanced_python_2026/09_properties_rust/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/09_properties_rust/exercise/exercise_01.py rename to modules/14_advanced_python_2026/09_properties_rust/exercise/exercise_01.py diff --git a/14_advanced_python_2026/09_properties_rust/references/links.md b/modules/14_advanced_python_2026/09_properties_rust/references/links.md similarity index 100% rename from 14_advanced_python_2026/09_properties_rust/references/links.md rename to modules/14_advanced_python_2026/09_properties_rust/references/links.md diff --git a/14_advanced_python_2026/09_properties_rust/tests/test_basic.py b/modules/14_advanced_python_2026/09_properties_rust/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/09_properties_rust/tests/test_basic.py rename to modules/14_advanced_python_2026/09_properties_rust/tests/test_basic.py diff --git a/14_advanced_python_2026/10_static_class_methods/README.md b/modules/14_advanced_python_2026/10_static_class_methods/README.md similarity index 100% rename from 14_advanced_python_2026/10_static_class_methods/README.md rename to modules/14_advanced_python_2026/10_static_class_methods/README.md diff --git a/14_advanced_python_2026/10_static_class_methods/examples/example_basic.py b/modules/14_advanced_python_2026/10_static_class_methods/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/10_static_class_methods/examples/example_basic.py rename to modules/14_advanced_python_2026/10_static_class_methods/examples/example_basic.py diff --git a/14_advanced_python_2026/10_static_class_methods/exercise/exercise_01.py b/modules/14_advanced_python_2026/10_static_class_methods/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/10_static_class_methods/exercise/exercise_01.py rename to modules/14_advanced_python_2026/10_static_class_methods/exercise/exercise_01.py diff --git a/14_advanced_python_2026/10_static_class_methods/references/links.md b/modules/14_advanced_python_2026/10_static_class_methods/references/links.md similarity index 100% rename from 14_advanced_python_2026/10_static_class_methods/references/links.md rename to modules/14_advanced_python_2026/10_static_class_methods/references/links.md diff --git a/14_advanced_python_2026/10_static_class_methods/tests/test_basic.py b/modules/14_advanced_python_2026/10_static_class_methods/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/10_static_class_methods/tests/test_basic.py rename to modules/14_advanced_python_2026/10_static_class_methods/tests/test_basic.py diff --git a/14_advanced_python_2026/11_operator_overloading/README.md b/modules/14_advanced_python_2026/11_operator_overloading/README.md similarity index 100% rename from 14_advanced_python_2026/11_operator_overloading/README.md rename to modules/14_advanced_python_2026/11_operator_overloading/README.md diff --git a/14_advanced_python_2026/11_operator_overloading/examples/example_basic.py b/modules/14_advanced_python_2026/11_operator_overloading/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/11_operator_overloading/examples/example_basic.py rename to modules/14_advanced_python_2026/11_operator_overloading/examples/example_basic.py diff --git a/14_advanced_python_2026/11_operator_overloading/exercise/exercise_01.py b/modules/14_advanced_python_2026/11_operator_overloading/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/11_operator_overloading/exercise/exercise_01.py rename to modules/14_advanced_python_2026/11_operator_overloading/exercise/exercise_01.py diff --git a/14_advanced_python_2026/11_operator_overloading/references/links.md b/modules/14_advanced_python_2026/11_operator_overloading/references/links.md similarity index 100% rename from 14_advanced_python_2026/11_operator_overloading/references/links.md rename to modules/14_advanced_python_2026/11_operator_overloading/references/links.md diff --git a/14_advanced_python_2026/11_operator_overloading/tests/test_basic.py b/modules/14_advanced_python_2026/11_operator_overloading/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/11_operator_overloading/tests/test_basic.py rename to modules/14_advanced_python_2026/11_operator_overloading/tests/test_basic.py diff --git a/14_advanced_python_2026/12_python_modules/README.md b/modules/14_advanced_python_2026/12_python_modules/README.md similarity index 100% rename from 14_advanced_python_2026/12_python_modules/README.md rename to modules/14_advanced_python_2026/12_python_modules/README.md diff --git a/14_advanced_python_2026/12_python_modules/examples/example_basic.py b/modules/14_advanced_python_2026/12_python_modules/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/12_python_modules/examples/example_basic.py rename to modules/14_advanced_python_2026/12_python_modules/examples/example_basic.py diff --git a/14_advanced_python_2026/12_python_modules/exercise/exercise_01.py b/modules/14_advanced_python_2026/12_python_modules/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/12_python_modules/exercise/exercise_01.py rename to modules/14_advanced_python_2026/12_python_modules/exercise/exercise_01.py diff --git a/14_advanced_python_2026/12_python_modules/references/links.md b/modules/14_advanced_python_2026/12_python_modules/references/links.md similarity index 100% rename from 14_advanced_python_2026/12_python_modules/references/links.md rename to modules/14_advanced_python_2026/12_python_modules/references/links.md diff --git a/14_advanced_python_2026/12_python_modules/tests/test_basic.py b/modules/14_advanced_python_2026/12_python_modules/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/12_python_modules/tests/test_basic.py rename to modules/14_advanced_python_2026/12_python_modules/tests/test_basic.py diff --git a/14_advanced_python_2026/13_gil_management/README.md b/modules/14_advanced_python_2026/13_gil_management/README.md similarity index 100% rename from 14_advanced_python_2026/13_gil_management/README.md rename to modules/14_advanced_python_2026/13_gil_management/README.md diff --git a/14_advanced_python_2026/13_gil_management/examples/example_basic.py b/modules/14_advanced_python_2026/13_gil_management/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/13_gil_management/examples/example_basic.py rename to modules/14_advanced_python_2026/13_gil_management/examples/example_basic.py diff --git a/14_advanced_python_2026/13_gil_management/exercise/exercise_01.py b/modules/14_advanced_python_2026/13_gil_management/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/13_gil_management/exercise/exercise_01.py rename to modules/14_advanced_python_2026/13_gil_management/exercise/exercise_01.py diff --git a/14_advanced_python_2026/13_gil_management/references/links.md b/modules/14_advanced_python_2026/13_gil_management/references/links.md similarity index 100% rename from 14_advanced_python_2026/13_gil_management/references/links.md rename to modules/14_advanced_python_2026/13_gil_management/references/links.md diff --git a/14_advanced_python_2026/13_gil_management/tests/test_basic.py b/modules/14_advanced_python_2026/13_gil_management/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/13_gil_management/tests/test_basic.py rename to modules/14_advanced_python_2026/13_gil_management/tests/test_basic.py diff --git a/14_advanced_python_2026/14_shared_mutable_state/README.md b/modules/14_advanced_python_2026/14_shared_mutable_state/README.md similarity index 100% rename from 14_advanced_python_2026/14_shared_mutable_state/README.md rename to modules/14_advanced_python_2026/14_shared_mutable_state/README.md diff --git a/14_advanced_python_2026/14_shared_mutable_state/examples/example_basic.py b/modules/14_advanced_python_2026/14_shared_mutable_state/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/14_shared_mutable_state/examples/example_basic.py rename to modules/14_advanced_python_2026/14_shared_mutable_state/examples/example_basic.py diff --git a/14_advanced_python_2026/14_shared_mutable_state/exercise/exercise_01.py b/modules/14_advanced_python_2026/14_shared_mutable_state/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/14_shared_mutable_state/exercise/exercise_01.py rename to modules/14_advanced_python_2026/14_shared_mutable_state/exercise/exercise_01.py diff --git a/14_advanced_python_2026/14_shared_mutable_state/references/links.md b/modules/14_advanced_python_2026/14_shared_mutable_state/references/links.md similarity index 100% rename from 14_advanced_python_2026/14_shared_mutable_state/references/links.md rename to modules/14_advanced_python_2026/14_shared_mutable_state/references/links.md diff --git a/14_advanced_python_2026/14_shared_mutable_state/tests/test_basic.py b/modules/14_advanced_python_2026/14_shared_mutable_state/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/14_shared_mutable_state/tests/test_basic.py rename to modules/14_advanced_python_2026/14_shared_mutable_state/tests/test_basic.py diff --git a/14_advanced_python_2026/15_async_rust_pyo3/README.md b/modules/14_advanced_python_2026/15_async_rust_pyo3/README.md similarity index 100% rename from 14_advanced_python_2026/15_async_rust_pyo3/README.md rename to modules/14_advanced_python_2026/15_async_rust_pyo3/README.md diff --git a/14_advanced_python_2026/15_async_rust_pyo3/examples/example_basic.py b/modules/14_advanced_python_2026/15_async_rust_pyo3/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/15_async_rust_pyo3/examples/example_basic.py rename to modules/14_advanced_python_2026/15_async_rust_pyo3/examples/example_basic.py diff --git a/14_advanced_python_2026/15_async_rust_pyo3/exercise/exercise_01.py b/modules/14_advanced_python_2026/15_async_rust_pyo3/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/15_async_rust_pyo3/exercise/exercise_01.py rename to modules/14_advanced_python_2026/15_async_rust_pyo3/exercise/exercise_01.py diff --git a/14_advanced_python_2026/15_async_rust_pyo3/references/links.md b/modules/14_advanced_python_2026/15_async_rust_pyo3/references/links.md similarity index 100% rename from 14_advanced_python_2026/15_async_rust_pyo3/references/links.md rename to modules/14_advanced_python_2026/15_async_rust_pyo3/references/links.md diff --git a/14_advanced_python_2026/15_async_rust_pyo3/tests/test_basic.py b/modules/14_advanced_python_2026/15_async_rust_pyo3/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/15_async_rust_pyo3/tests/test_basic.py rename to modules/14_advanced_python_2026/15_async_rust_pyo3/tests/test_basic.py diff --git a/14_advanced_python_2026/16_numpy_arrays_zerocopy/README.md b/modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/README.md similarity index 100% rename from 14_advanced_python_2026/16_numpy_arrays_zerocopy/README.md rename to modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/README.md diff --git a/14_advanced_python_2026/16_numpy_arrays_zerocopy/examples/example_basic.py b/modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/16_numpy_arrays_zerocopy/examples/example_basic.py rename to modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/examples/example_basic.py diff --git a/14_advanced_python_2026/16_numpy_arrays_zerocopy/exercise/exercise_01.py b/modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/16_numpy_arrays_zerocopy/exercise/exercise_01.py rename to modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/exercise/exercise_01.py diff --git a/14_advanced_python_2026/16_numpy_arrays_zerocopy/references/links.md b/modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/references/links.md similarity index 100% rename from 14_advanced_python_2026/16_numpy_arrays_zerocopy/references/links.md rename to modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/references/links.md diff --git a/14_advanced_python_2026/16_numpy_arrays_zerocopy/tests/test_basic.py b/modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/16_numpy_arrays_zerocopy/tests/test_basic.py rename to modules/14_advanced_python_2026/16_numpy_arrays_zerocopy/tests/test_basic.py diff --git a/14_advanced_python_2026/17_python_callbacks_from_rust/README.md b/modules/14_advanced_python_2026/17_python_callbacks_from_rust/README.md similarity index 100% rename from 14_advanced_python_2026/17_python_callbacks_from_rust/README.md rename to modules/14_advanced_python_2026/17_python_callbacks_from_rust/README.md diff --git a/14_advanced_python_2026/17_python_callbacks_from_rust/examples/example_basic.py b/modules/14_advanced_python_2026/17_python_callbacks_from_rust/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/17_python_callbacks_from_rust/examples/example_basic.py rename to modules/14_advanced_python_2026/17_python_callbacks_from_rust/examples/example_basic.py diff --git a/14_advanced_python_2026/17_python_callbacks_from_rust/exercise/exercise_01.py b/modules/14_advanced_python_2026/17_python_callbacks_from_rust/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/17_python_callbacks_from_rust/exercise/exercise_01.py rename to modules/14_advanced_python_2026/17_python_callbacks_from_rust/exercise/exercise_01.py diff --git a/14_advanced_python_2026/17_python_callbacks_from_rust/references/links.md b/modules/14_advanced_python_2026/17_python_callbacks_from_rust/references/links.md similarity index 100% rename from 14_advanced_python_2026/17_python_callbacks_from_rust/references/links.md rename to modules/14_advanced_python_2026/17_python_callbacks_from_rust/references/links.md diff --git a/14_advanced_python_2026/17_python_callbacks_from_rust/tests/test_basic.py b/modules/14_advanced_python_2026/17_python_callbacks_from_rust/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/17_python_callbacks_from_rust/tests/test_basic.py rename to modules/14_advanced_python_2026/17_python_callbacks_from_rust/tests/test_basic.py diff --git a/14_advanced_python_2026/18_performance_optimization/README.md b/modules/14_advanced_python_2026/18_performance_optimization/README.md similarity index 100% rename from 14_advanced_python_2026/18_performance_optimization/README.md rename to modules/14_advanced_python_2026/18_performance_optimization/README.md diff --git a/14_advanced_python_2026/18_performance_optimization/examples/example_basic.py b/modules/14_advanced_python_2026/18_performance_optimization/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/18_performance_optimization/examples/example_basic.py rename to modules/14_advanced_python_2026/18_performance_optimization/examples/example_basic.py diff --git a/14_advanced_python_2026/18_performance_optimization/exercise/exercise_01.py b/modules/14_advanced_python_2026/18_performance_optimization/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/18_performance_optimization/exercise/exercise_01.py rename to modules/14_advanced_python_2026/18_performance_optimization/exercise/exercise_01.py diff --git a/14_advanced_python_2026/18_performance_optimization/references/links.md b/modules/14_advanced_python_2026/18_performance_optimization/references/links.md similarity index 100% rename from 14_advanced_python_2026/18_performance_optimization/references/links.md rename to modules/14_advanced_python_2026/18_performance_optimization/references/links.md diff --git a/14_advanced_python_2026/18_performance_optimization/tests/test_basic.py b/modules/14_advanced_python_2026/18_performance_optimization/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/18_performance_optimization/tests/test_basic.py rename to modules/14_advanced_python_2026/18_performance_optimization/tests/test_basic.py diff --git a/14_advanced_python_2026/19_high_performance_parser/README.md b/modules/14_advanced_python_2026/19_high_performance_parser/README.md similarity index 100% rename from 14_advanced_python_2026/19_high_performance_parser/README.md rename to modules/14_advanced_python_2026/19_high_performance_parser/README.md diff --git a/14_advanced_python_2026/19_high_performance_parser/examples/example_basic.py b/modules/14_advanced_python_2026/19_high_performance_parser/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/19_high_performance_parser/examples/example_basic.py rename to modules/14_advanced_python_2026/19_high_performance_parser/examples/example_basic.py diff --git a/14_advanced_python_2026/19_high_performance_parser/exercise/exercise_01.py b/modules/14_advanced_python_2026/19_high_performance_parser/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/19_high_performance_parser/exercise/exercise_01.py rename to modules/14_advanced_python_2026/19_high_performance_parser/exercise/exercise_01.py diff --git a/14_advanced_python_2026/19_high_performance_parser/references/links.md b/modules/14_advanced_python_2026/19_high_performance_parser/references/links.md similarity index 100% rename from 14_advanced_python_2026/19_high_performance_parser/references/links.md rename to modules/14_advanced_python_2026/19_high_performance_parser/references/links.md diff --git a/14_advanced_python_2026/19_high_performance_parser/tests/test_basic.py b/modules/14_advanced_python_2026/19_high_performance_parser/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/19_high_performance_parser/tests/test_basic.py rename to modules/14_advanced_python_2026/19_high_performance_parser/tests/test_basic.py diff --git a/14_advanced_python_2026/20_image_processing/README.md b/modules/14_advanced_python_2026/20_image_processing/README.md similarity index 100% rename from 14_advanced_python_2026/20_image_processing/README.md rename to modules/14_advanced_python_2026/20_image_processing/README.md diff --git a/14_advanced_python_2026/20_image_processing/examples/example_basic.py b/modules/14_advanced_python_2026/20_image_processing/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/20_image_processing/examples/example_basic.py rename to modules/14_advanced_python_2026/20_image_processing/examples/example_basic.py diff --git a/14_advanced_python_2026/20_image_processing/exercise/exercise_01.py b/modules/14_advanced_python_2026/20_image_processing/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/20_image_processing/exercise/exercise_01.py rename to modules/14_advanced_python_2026/20_image_processing/exercise/exercise_01.py diff --git a/14_advanced_python_2026/20_image_processing/references/links.md b/modules/14_advanced_python_2026/20_image_processing/references/links.md similarity index 100% rename from 14_advanced_python_2026/20_image_processing/references/links.md rename to modules/14_advanced_python_2026/20_image_processing/references/links.md diff --git a/14_advanced_python_2026/20_image_processing/tests/test_basic.py b/modules/14_advanced_python_2026/20_image_processing/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/20_image_processing/tests/test_basic.py rename to modules/14_advanced_python_2026/20_image_processing/tests/test_basic.py diff --git a/14_advanced_python_2026/21_cryptography_hashing/README.md b/modules/14_advanced_python_2026/21_cryptography_hashing/README.md similarity index 100% rename from 14_advanced_python_2026/21_cryptography_hashing/README.md rename to modules/14_advanced_python_2026/21_cryptography_hashing/README.md diff --git a/14_advanced_python_2026/21_cryptography_hashing/examples/example_basic.py b/modules/14_advanced_python_2026/21_cryptography_hashing/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/21_cryptography_hashing/examples/example_basic.py rename to modules/14_advanced_python_2026/21_cryptography_hashing/examples/example_basic.py diff --git a/14_advanced_python_2026/21_cryptography_hashing/exercise/exercise_01.py b/modules/14_advanced_python_2026/21_cryptography_hashing/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/21_cryptography_hashing/exercise/exercise_01.py rename to modules/14_advanced_python_2026/21_cryptography_hashing/exercise/exercise_01.py diff --git a/14_advanced_python_2026/21_cryptography_hashing/references/links.md b/modules/14_advanced_python_2026/21_cryptography_hashing/references/links.md similarity index 100% rename from 14_advanced_python_2026/21_cryptography_hashing/references/links.md rename to modules/14_advanced_python_2026/21_cryptography_hashing/references/links.md diff --git a/14_advanced_python_2026/21_cryptography_hashing/tests/test_basic.py b/modules/14_advanced_python_2026/21_cryptography_hashing/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/21_cryptography_hashing/tests/test_basic.py rename to modules/14_advanced_python_2026/21_cryptography_hashing/tests/test_basic.py diff --git a/14_advanced_python_2026/22_parallel_data_processing/README.md b/modules/14_advanced_python_2026/22_parallel_data_processing/README.md similarity index 100% rename from 14_advanced_python_2026/22_parallel_data_processing/README.md rename to modules/14_advanced_python_2026/22_parallel_data_processing/README.md diff --git a/14_advanced_python_2026/22_parallel_data_processing/examples/example_basic.py b/modules/14_advanced_python_2026/22_parallel_data_processing/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/22_parallel_data_processing/examples/example_basic.py rename to modules/14_advanced_python_2026/22_parallel_data_processing/examples/example_basic.py diff --git a/14_advanced_python_2026/22_parallel_data_processing/exercise/exercise_01.py b/modules/14_advanced_python_2026/22_parallel_data_processing/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/22_parallel_data_processing/exercise/exercise_01.py rename to modules/14_advanced_python_2026/22_parallel_data_processing/exercise/exercise_01.py diff --git a/14_advanced_python_2026/22_parallel_data_processing/references/links.md b/modules/14_advanced_python_2026/22_parallel_data_processing/references/links.md similarity index 100% rename from 14_advanced_python_2026/22_parallel_data_processing/references/links.md rename to modules/14_advanced_python_2026/22_parallel_data_processing/references/links.md diff --git a/14_advanced_python_2026/22_parallel_data_processing/tests/test_basic.py b/modules/14_advanced_python_2026/22_parallel_data_processing/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/22_parallel_data_processing/tests/test_basic.py rename to modules/14_advanced_python_2026/22_parallel_data_processing/tests/test_basic.py diff --git a/14_advanced_python_2026/23_embeddings_vector_stores/README.md b/modules/14_advanced_python_2026/23_embeddings_vector_stores/README.md similarity index 100% rename from 14_advanced_python_2026/23_embeddings_vector_stores/README.md rename to modules/14_advanced_python_2026/23_embeddings_vector_stores/README.md diff --git a/14_advanced_python_2026/23_embeddings_vector_stores/examples/example_basic.py b/modules/14_advanced_python_2026/23_embeddings_vector_stores/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/23_embeddings_vector_stores/examples/example_basic.py rename to modules/14_advanced_python_2026/23_embeddings_vector_stores/examples/example_basic.py diff --git a/14_advanced_python_2026/23_embeddings_vector_stores/exercise/exercise_01.py b/modules/14_advanced_python_2026/23_embeddings_vector_stores/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/23_embeddings_vector_stores/exercise/exercise_01.py rename to modules/14_advanced_python_2026/23_embeddings_vector_stores/exercise/exercise_01.py diff --git a/14_advanced_python_2026/23_embeddings_vector_stores/references/links.md b/modules/14_advanced_python_2026/23_embeddings_vector_stores/references/links.md similarity index 100% rename from 14_advanced_python_2026/23_embeddings_vector_stores/references/links.md rename to modules/14_advanced_python_2026/23_embeddings_vector_stores/references/links.md diff --git a/14_advanced_python_2026/23_embeddings_vector_stores/tests/test_basic.py b/modules/14_advanced_python_2026/23_embeddings_vector_stores/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/23_embeddings_vector_stores/tests/test_basic.py rename to modules/14_advanced_python_2026/23_embeddings_vector_stores/tests/test_basic.py diff --git a/14_advanced_python_2026/24_streaming_llm_responses/README.md b/modules/14_advanced_python_2026/24_streaming_llm_responses/README.md similarity index 100% rename from 14_advanced_python_2026/24_streaming_llm_responses/README.md rename to modules/14_advanced_python_2026/24_streaming_llm_responses/README.md diff --git a/14_advanced_python_2026/24_streaming_llm_responses/examples/example_basic.py b/modules/14_advanced_python_2026/24_streaming_llm_responses/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/24_streaming_llm_responses/examples/example_basic.py rename to modules/14_advanced_python_2026/24_streaming_llm_responses/examples/example_basic.py diff --git a/14_advanced_python_2026/24_streaming_llm_responses/exercise/exercise_01.py b/modules/14_advanced_python_2026/24_streaming_llm_responses/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/24_streaming_llm_responses/exercise/exercise_01.py rename to modules/14_advanced_python_2026/24_streaming_llm_responses/exercise/exercise_01.py diff --git a/14_advanced_python_2026/24_streaming_llm_responses/references/links.md b/modules/14_advanced_python_2026/24_streaming_llm_responses/references/links.md similarity index 100% rename from 14_advanced_python_2026/24_streaming_llm_responses/references/links.md rename to modules/14_advanced_python_2026/24_streaming_llm_responses/references/links.md diff --git a/14_advanced_python_2026/24_streaming_llm_responses/tests/test_basic.py b/modules/14_advanced_python_2026/24_streaming_llm_responses/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/24_streaming_llm_responses/tests/test_basic.py rename to modules/14_advanced_python_2026/24_streaming_llm_responses/tests/test_basic.py diff --git a/14_advanced_python_2026/25_structured_output_pydantic/README.md b/modules/14_advanced_python_2026/25_structured_output_pydantic/README.md similarity index 100% rename from 14_advanced_python_2026/25_structured_output_pydantic/README.md rename to modules/14_advanced_python_2026/25_structured_output_pydantic/README.md diff --git a/14_advanced_python_2026/25_structured_output_pydantic/examples/example_basic.py b/modules/14_advanced_python_2026/25_structured_output_pydantic/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/25_structured_output_pydantic/examples/example_basic.py rename to modules/14_advanced_python_2026/25_structured_output_pydantic/examples/example_basic.py diff --git a/14_advanced_python_2026/25_structured_output_pydantic/exercise/exercise_01.py b/modules/14_advanced_python_2026/25_structured_output_pydantic/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/25_structured_output_pydantic/exercise/exercise_01.py rename to modules/14_advanced_python_2026/25_structured_output_pydantic/exercise/exercise_01.py diff --git a/14_advanced_python_2026/25_structured_output_pydantic/references/links.md b/modules/14_advanced_python_2026/25_structured_output_pydantic/references/links.md similarity index 100% rename from 14_advanced_python_2026/25_structured_output_pydantic/references/links.md rename to modules/14_advanced_python_2026/25_structured_output_pydantic/references/links.md diff --git a/14_advanced_python_2026/25_structured_output_pydantic/tests/test_basic.py b/modules/14_advanced_python_2026/25_structured_output_pydantic/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/25_structured_output_pydantic/tests/test_basic.py rename to modules/14_advanced_python_2026/25_structured_output_pydantic/tests/test_basic.py diff --git a/14_advanced_python_2026/26_code_prompt_engineering/README.md b/modules/14_advanced_python_2026/26_code_prompt_engineering/README.md similarity index 100% rename from 14_advanced_python_2026/26_code_prompt_engineering/README.md rename to modules/14_advanced_python_2026/26_code_prompt_engineering/README.md diff --git a/14_advanced_python_2026/26_code_prompt_engineering/examples/example_basic.py b/modules/14_advanced_python_2026/26_code_prompt_engineering/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/26_code_prompt_engineering/examples/example_basic.py rename to modules/14_advanced_python_2026/26_code_prompt_engineering/examples/example_basic.py diff --git a/14_advanced_python_2026/26_code_prompt_engineering/exercise/exercise_01.py b/modules/14_advanced_python_2026/26_code_prompt_engineering/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/26_code_prompt_engineering/exercise/exercise_01.py rename to modules/14_advanced_python_2026/26_code_prompt_engineering/exercise/exercise_01.py diff --git a/14_advanced_python_2026/26_code_prompt_engineering/references/links.md b/modules/14_advanced_python_2026/26_code_prompt_engineering/references/links.md similarity index 100% rename from 14_advanced_python_2026/26_code_prompt_engineering/references/links.md rename to modules/14_advanced_python_2026/26_code_prompt_engineering/references/links.md diff --git a/14_advanced_python_2026/26_code_prompt_engineering/tests/test_basic.py b/modules/14_advanced_python_2026/26_code_prompt_engineering/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/26_code_prompt_engineering/tests/test_basic.py rename to modules/14_advanced_python_2026/26_code_prompt_engineering/tests/test_basic.py diff --git a/14_advanced_python_2026/27_function_calling_tools/README.md b/modules/14_advanced_python_2026/27_function_calling_tools/README.md similarity index 100% rename from 14_advanced_python_2026/27_function_calling_tools/README.md rename to modules/14_advanced_python_2026/27_function_calling_tools/README.md diff --git a/14_advanced_python_2026/27_function_calling_tools/examples/example_basic.py b/modules/14_advanced_python_2026/27_function_calling_tools/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/27_function_calling_tools/examples/example_basic.py rename to modules/14_advanced_python_2026/27_function_calling_tools/examples/example_basic.py diff --git a/14_advanced_python_2026/27_function_calling_tools/exercise/exercise_01.py b/modules/14_advanced_python_2026/27_function_calling_tools/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/27_function_calling_tools/exercise/exercise_01.py rename to modules/14_advanced_python_2026/27_function_calling_tools/exercise/exercise_01.py diff --git a/14_advanced_python_2026/27_function_calling_tools/references/links.md b/modules/14_advanced_python_2026/27_function_calling_tools/references/links.md similarity index 100% rename from 14_advanced_python_2026/27_function_calling_tools/references/links.md rename to modules/14_advanced_python_2026/27_function_calling_tools/references/links.md diff --git a/14_advanced_python_2026/27_function_calling_tools/tests/test_basic.py b/modules/14_advanced_python_2026/27_function_calling_tools/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/27_function_calling_tools/tests/test_basic.py rename to modules/14_advanced_python_2026/27_function_calling_tools/tests/test_basic.py diff --git a/14_advanced_python_2026/28_langchain_basics/README.md b/modules/14_advanced_python_2026/28_langchain_basics/README.md similarity index 100% rename from 14_advanced_python_2026/28_langchain_basics/README.md rename to modules/14_advanced_python_2026/28_langchain_basics/README.md diff --git a/14_advanced_python_2026/28_langchain_basics/examples/example_basic.py b/modules/14_advanced_python_2026/28_langchain_basics/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/28_langchain_basics/examples/example_basic.py rename to modules/14_advanced_python_2026/28_langchain_basics/examples/example_basic.py diff --git a/14_advanced_python_2026/28_langchain_basics/exercise/exercise_01.py b/modules/14_advanced_python_2026/28_langchain_basics/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/28_langchain_basics/exercise/exercise_01.py rename to modules/14_advanced_python_2026/28_langchain_basics/exercise/exercise_01.py diff --git a/14_advanced_python_2026/28_langchain_basics/references/links.md b/modules/14_advanced_python_2026/28_langchain_basics/references/links.md similarity index 100% rename from 14_advanced_python_2026/28_langchain_basics/references/links.md rename to modules/14_advanced_python_2026/28_langchain_basics/references/links.md diff --git a/14_advanced_python_2026/28_langchain_basics/tests/test_basic.py b/modules/14_advanced_python_2026/28_langchain_basics/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/28_langchain_basics/tests/test_basic.py rename to modules/14_advanced_python_2026/28_langchain_basics/tests/test_basic.py diff --git a/14_advanced_python_2026/29_langchain_chains/README.md b/modules/14_advanced_python_2026/29_langchain_chains/README.md similarity index 100% rename from 14_advanced_python_2026/29_langchain_chains/README.md rename to modules/14_advanced_python_2026/29_langchain_chains/README.md diff --git a/14_advanced_python_2026/29_langchain_chains/examples/example_basic.py b/modules/14_advanced_python_2026/29_langchain_chains/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/29_langchain_chains/examples/example_basic.py rename to modules/14_advanced_python_2026/29_langchain_chains/examples/example_basic.py diff --git a/14_advanced_python_2026/29_langchain_chains/exercise/exercise_01.py b/modules/14_advanced_python_2026/29_langchain_chains/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/29_langchain_chains/exercise/exercise_01.py rename to modules/14_advanced_python_2026/29_langchain_chains/exercise/exercise_01.py diff --git a/14_advanced_python_2026/29_langchain_chains/references/links.md b/modules/14_advanced_python_2026/29_langchain_chains/references/links.md similarity index 100% rename from 14_advanced_python_2026/29_langchain_chains/references/links.md rename to modules/14_advanced_python_2026/29_langchain_chains/references/links.md diff --git a/14_advanced_python_2026/29_langchain_chains/tests/test_basic.py b/modules/14_advanced_python_2026/29_langchain_chains/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/29_langchain_chains/tests/test_basic.py rename to modules/14_advanced_python_2026/29_langchain_chains/tests/test_basic.py diff --git a/14_advanced_python_2026/30_rag_retrieval_augmented/README.md b/modules/14_advanced_python_2026/30_rag_retrieval_augmented/README.md similarity index 100% rename from 14_advanced_python_2026/30_rag_retrieval_augmented/README.md rename to modules/14_advanced_python_2026/30_rag_retrieval_augmented/README.md diff --git a/14_advanced_python_2026/30_rag_retrieval_augmented/examples/example_basic.py b/modules/14_advanced_python_2026/30_rag_retrieval_augmented/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/30_rag_retrieval_augmented/examples/example_basic.py rename to modules/14_advanced_python_2026/30_rag_retrieval_augmented/examples/example_basic.py diff --git a/14_advanced_python_2026/30_rag_retrieval_augmented/exercise/exercise_01.py b/modules/14_advanced_python_2026/30_rag_retrieval_augmented/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/30_rag_retrieval_augmented/exercise/exercise_01.py rename to modules/14_advanced_python_2026/30_rag_retrieval_augmented/exercise/exercise_01.py diff --git a/14_advanced_python_2026/30_rag_retrieval_augmented/references/links.md b/modules/14_advanced_python_2026/30_rag_retrieval_augmented/references/links.md similarity index 100% rename from 14_advanced_python_2026/30_rag_retrieval_augmented/references/links.md rename to modules/14_advanced_python_2026/30_rag_retrieval_augmented/references/links.md diff --git a/14_advanced_python_2026/30_rag_retrieval_augmented/tests/test_basic.py b/modules/14_advanced_python_2026/30_rag_retrieval_augmented/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/30_rag_retrieval_augmented/tests/test_basic.py rename to modules/14_advanced_python_2026/30_rag_retrieval_augmented/tests/test_basic.py diff --git a/14_advanced_python_2026/31_memory_systems/README.md b/modules/14_advanced_python_2026/31_memory_systems/README.md similarity index 100% rename from 14_advanced_python_2026/31_memory_systems/README.md rename to modules/14_advanced_python_2026/31_memory_systems/README.md diff --git a/14_advanced_python_2026/31_memory_systems/examples/example_basic.py b/modules/14_advanced_python_2026/31_memory_systems/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/31_memory_systems/examples/example_basic.py rename to modules/14_advanced_python_2026/31_memory_systems/examples/example_basic.py diff --git a/14_advanced_python_2026/31_memory_systems/exercise/exercise_01.py b/modules/14_advanced_python_2026/31_memory_systems/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/31_memory_systems/exercise/exercise_01.py rename to modules/14_advanced_python_2026/31_memory_systems/exercise/exercise_01.py diff --git a/14_advanced_python_2026/31_memory_systems/references/links.md b/modules/14_advanced_python_2026/31_memory_systems/references/links.md similarity index 100% rename from 14_advanced_python_2026/31_memory_systems/references/links.md rename to modules/14_advanced_python_2026/31_memory_systems/references/links.md diff --git a/14_advanced_python_2026/31_memory_systems/tests/test_basic.py b/modules/14_advanced_python_2026/31_memory_systems/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/31_memory_systems/tests/test_basic.py rename to modules/14_advanced_python_2026/31_memory_systems/tests/test_basic.py diff --git a/14_advanced_python_2026/32_document_loaders/README.md b/modules/14_advanced_python_2026/32_document_loaders/README.md similarity index 100% rename from 14_advanced_python_2026/32_document_loaders/README.md rename to modules/14_advanced_python_2026/32_document_loaders/README.md diff --git a/14_advanced_python_2026/32_document_loaders/examples/example_basic.py b/modules/14_advanced_python_2026/32_document_loaders/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/32_document_loaders/examples/example_basic.py rename to modules/14_advanced_python_2026/32_document_loaders/examples/example_basic.py diff --git a/14_advanced_python_2026/32_document_loaders/exercise/exercise_01.py b/modules/14_advanced_python_2026/32_document_loaders/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/32_document_loaders/exercise/exercise_01.py rename to modules/14_advanced_python_2026/32_document_loaders/exercise/exercise_01.py diff --git a/14_advanced_python_2026/32_document_loaders/references/links.md b/modules/14_advanced_python_2026/32_document_loaders/references/links.md similarity index 100% rename from 14_advanced_python_2026/32_document_loaders/references/links.md rename to modules/14_advanced_python_2026/32_document_loaders/references/links.md diff --git a/14_advanced_python_2026/32_document_loaders/tests/test_basic.py b/modules/14_advanced_python_2026/32_document_loaders/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/32_document_loaders/tests/test_basic.py rename to modules/14_advanced_python_2026/32_document_loaders/tests/test_basic.py diff --git a/14_advanced_python_2026/33_text_splitters/README.md b/modules/14_advanced_python_2026/33_text_splitters/README.md similarity index 100% rename from 14_advanced_python_2026/33_text_splitters/README.md rename to modules/14_advanced_python_2026/33_text_splitters/README.md diff --git a/14_advanced_python_2026/33_text_splitters/examples/example_basic.py b/modules/14_advanced_python_2026/33_text_splitters/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/33_text_splitters/examples/example_basic.py rename to modules/14_advanced_python_2026/33_text_splitters/examples/example_basic.py diff --git a/14_advanced_python_2026/33_text_splitters/exercise/exercise_01.py b/modules/14_advanced_python_2026/33_text_splitters/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/33_text_splitters/exercise/exercise_01.py rename to modules/14_advanced_python_2026/33_text_splitters/exercise/exercise_01.py diff --git a/14_advanced_python_2026/33_text_splitters/references/links.md b/modules/14_advanced_python_2026/33_text_splitters/references/links.md similarity index 100% rename from 14_advanced_python_2026/33_text_splitters/references/links.md rename to modules/14_advanced_python_2026/33_text_splitters/references/links.md diff --git a/14_advanced_python_2026/33_text_splitters/tests/test_basic.py b/modules/14_advanced_python_2026/33_text_splitters/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/33_text_splitters/tests/test_basic.py rename to modules/14_advanced_python_2026/33_text_splitters/tests/test_basic.py diff --git a/14_advanced_python_2026/34_vector_stores_chromadb/README.md b/modules/14_advanced_python_2026/34_vector_stores_chromadb/README.md similarity index 100% rename from 14_advanced_python_2026/34_vector_stores_chromadb/README.md rename to modules/14_advanced_python_2026/34_vector_stores_chromadb/README.md diff --git a/14_advanced_python_2026/34_vector_stores_chromadb/examples/example_basic.py b/modules/14_advanced_python_2026/34_vector_stores_chromadb/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/34_vector_stores_chromadb/examples/example_basic.py rename to modules/14_advanced_python_2026/34_vector_stores_chromadb/examples/example_basic.py diff --git a/14_advanced_python_2026/34_vector_stores_chromadb/exercise/exercise_01.py b/modules/14_advanced_python_2026/34_vector_stores_chromadb/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/34_vector_stores_chromadb/exercise/exercise_01.py rename to modules/14_advanced_python_2026/34_vector_stores_chromadb/exercise/exercise_01.py diff --git a/14_advanced_python_2026/34_vector_stores_chromadb/references/links.md b/modules/14_advanced_python_2026/34_vector_stores_chromadb/references/links.md similarity index 100% rename from 14_advanced_python_2026/34_vector_stores_chromadb/references/links.md rename to modules/14_advanced_python_2026/34_vector_stores_chromadb/references/links.md diff --git a/14_advanced_python_2026/34_vector_stores_chromadb/tests/test_basic.py b/modules/14_advanced_python_2026/34_vector_stores_chromadb/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/34_vector_stores_chromadb/tests/test_basic.py rename to modules/14_advanced_python_2026/34_vector_stores_chromadb/tests/test_basic.py diff --git a/14_advanced_python_2026/35_langgraph_intro/README.md b/modules/14_advanced_python_2026/35_langgraph_intro/README.md similarity index 100% rename from 14_advanced_python_2026/35_langgraph_intro/README.md rename to modules/14_advanced_python_2026/35_langgraph_intro/README.md diff --git a/14_advanced_python_2026/35_langgraph_intro/examples/example_basic.py b/modules/14_advanced_python_2026/35_langgraph_intro/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/35_langgraph_intro/examples/example_basic.py rename to modules/14_advanced_python_2026/35_langgraph_intro/examples/example_basic.py diff --git a/14_advanced_python_2026/35_langgraph_intro/exercise/exercise_01.py b/modules/14_advanced_python_2026/35_langgraph_intro/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/35_langgraph_intro/exercise/exercise_01.py rename to modules/14_advanced_python_2026/35_langgraph_intro/exercise/exercise_01.py diff --git a/14_advanced_python_2026/35_langgraph_intro/references/links.md b/modules/14_advanced_python_2026/35_langgraph_intro/references/links.md similarity index 100% rename from 14_advanced_python_2026/35_langgraph_intro/references/links.md rename to modules/14_advanced_python_2026/35_langgraph_intro/references/links.md diff --git a/14_advanced_python_2026/35_langgraph_intro/tests/test_basic.py b/modules/14_advanced_python_2026/35_langgraph_intro/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/35_langgraph_intro/tests/test_basic.py rename to modules/14_advanced_python_2026/35_langgraph_intro/tests/test_basic.py diff --git a/14_advanced_python_2026/36_graphs_vs_chains/README.md b/modules/14_advanced_python_2026/36_graphs_vs_chains/README.md similarity index 100% rename from 14_advanced_python_2026/36_graphs_vs_chains/README.md rename to modules/14_advanced_python_2026/36_graphs_vs_chains/README.md diff --git a/14_advanced_python_2026/36_graphs_vs_chains/examples/example_basic.py b/modules/14_advanced_python_2026/36_graphs_vs_chains/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/36_graphs_vs_chains/examples/example_basic.py rename to modules/14_advanced_python_2026/36_graphs_vs_chains/examples/example_basic.py diff --git a/14_advanced_python_2026/36_graphs_vs_chains/exercise/exercise_01.py b/modules/14_advanced_python_2026/36_graphs_vs_chains/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/36_graphs_vs_chains/exercise/exercise_01.py rename to modules/14_advanced_python_2026/36_graphs_vs_chains/exercise/exercise_01.py diff --git a/14_advanced_python_2026/36_graphs_vs_chains/references/links.md b/modules/14_advanced_python_2026/36_graphs_vs_chains/references/links.md similarity index 100% rename from 14_advanced_python_2026/36_graphs_vs_chains/references/links.md rename to modules/14_advanced_python_2026/36_graphs_vs_chains/references/links.md diff --git a/14_advanced_python_2026/36_graphs_vs_chains/tests/test_basic.py b/modules/14_advanced_python_2026/36_graphs_vs_chains/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/36_graphs_vs_chains/tests/test_basic.py rename to modules/14_advanced_python_2026/36_graphs_vs_chains/tests/test_basic.py diff --git a/14_advanced_python_2026/37_nodes_edges/README.md b/modules/14_advanced_python_2026/37_nodes_edges/README.md similarity index 100% rename from 14_advanced_python_2026/37_nodes_edges/README.md rename to modules/14_advanced_python_2026/37_nodes_edges/README.md diff --git a/14_advanced_python_2026/37_nodes_edges/examples/example_basic.py b/modules/14_advanced_python_2026/37_nodes_edges/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/37_nodes_edges/examples/example_basic.py rename to modules/14_advanced_python_2026/37_nodes_edges/examples/example_basic.py diff --git a/14_advanced_python_2026/37_nodes_edges/exercise/exercise_01.py b/modules/14_advanced_python_2026/37_nodes_edges/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/37_nodes_edges/exercise/exercise_01.py rename to modules/14_advanced_python_2026/37_nodes_edges/exercise/exercise_01.py diff --git a/14_advanced_python_2026/37_nodes_edges/references/links.md b/modules/14_advanced_python_2026/37_nodes_edges/references/links.md similarity index 100% rename from 14_advanced_python_2026/37_nodes_edges/references/links.md rename to modules/14_advanced_python_2026/37_nodes_edges/references/links.md diff --git a/14_advanced_python_2026/37_nodes_edges/tests/test_basic.py b/modules/14_advanced_python_2026/37_nodes_edges/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/37_nodes_edges/tests/test_basic.py rename to modules/14_advanced_python_2026/37_nodes_edges/tests/test_basic.py diff --git a/14_advanced_python_2026/38_state_management/README.md b/modules/14_advanced_python_2026/38_state_management/README.md similarity index 100% rename from 14_advanced_python_2026/38_state_management/README.md rename to modules/14_advanced_python_2026/38_state_management/README.md diff --git a/14_advanced_python_2026/38_state_management/examples/example_basic.py b/modules/14_advanced_python_2026/38_state_management/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/38_state_management/examples/example_basic.py rename to modules/14_advanced_python_2026/38_state_management/examples/example_basic.py diff --git a/14_advanced_python_2026/38_state_management/exercise/exercise_01.py b/modules/14_advanced_python_2026/38_state_management/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/38_state_management/exercise/exercise_01.py rename to modules/14_advanced_python_2026/38_state_management/exercise/exercise_01.py diff --git a/14_advanced_python_2026/38_state_management/references/links.md b/modules/14_advanced_python_2026/38_state_management/references/links.md similarity index 100% rename from 14_advanced_python_2026/38_state_management/references/links.md rename to modules/14_advanced_python_2026/38_state_management/references/links.md diff --git a/14_advanced_python_2026/38_state_management/tests/test_basic.py b/modules/14_advanced_python_2026/38_state_management/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/38_state_management/tests/test_basic.py rename to modules/14_advanced_python_2026/38_state_management/tests/test_basic.py diff --git a/14_advanced_python_2026/39_conditional_routing/README.md b/modules/14_advanced_python_2026/39_conditional_routing/README.md similarity index 100% rename from 14_advanced_python_2026/39_conditional_routing/README.md rename to modules/14_advanced_python_2026/39_conditional_routing/README.md diff --git a/14_advanced_python_2026/39_conditional_routing/examples/example_basic.py b/modules/14_advanced_python_2026/39_conditional_routing/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/39_conditional_routing/examples/example_basic.py rename to modules/14_advanced_python_2026/39_conditional_routing/examples/example_basic.py diff --git a/14_advanced_python_2026/39_conditional_routing/exercise/exercise_01.py b/modules/14_advanced_python_2026/39_conditional_routing/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/39_conditional_routing/exercise/exercise_01.py rename to modules/14_advanced_python_2026/39_conditional_routing/exercise/exercise_01.py diff --git a/14_advanced_python_2026/39_conditional_routing/references/links.md b/modules/14_advanced_python_2026/39_conditional_routing/references/links.md similarity index 100% rename from 14_advanced_python_2026/39_conditional_routing/references/links.md rename to modules/14_advanced_python_2026/39_conditional_routing/references/links.md diff --git a/14_advanced_python_2026/39_conditional_routing/tests/test_basic.py b/modules/14_advanced_python_2026/39_conditional_routing/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/39_conditional_routing/tests/test_basic.py rename to modules/14_advanced_python_2026/39_conditional_routing/tests/test_basic.py diff --git a/14_advanced_python_2026/40_human_in_loop/README.md b/modules/14_advanced_python_2026/40_human_in_loop/README.md similarity index 100% rename from 14_advanced_python_2026/40_human_in_loop/README.md rename to modules/14_advanced_python_2026/40_human_in_loop/README.md diff --git a/14_advanced_python_2026/40_human_in_loop/examples/example_basic.py b/modules/14_advanced_python_2026/40_human_in_loop/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/40_human_in_loop/examples/example_basic.py rename to modules/14_advanced_python_2026/40_human_in_loop/examples/example_basic.py diff --git a/14_advanced_python_2026/40_human_in_loop/exercise/exercise_01.py b/modules/14_advanced_python_2026/40_human_in_loop/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/40_human_in_loop/exercise/exercise_01.py rename to modules/14_advanced_python_2026/40_human_in_loop/exercise/exercise_01.py diff --git a/14_advanced_python_2026/40_human_in_loop/references/links.md b/modules/14_advanced_python_2026/40_human_in_loop/references/links.md similarity index 100% rename from 14_advanced_python_2026/40_human_in_loop/references/links.md rename to modules/14_advanced_python_2026/40_human_in_loop/references/links.md diff --git a/14_advanced_python_2026/40_human_in_loop/tests/test_basic.py b/modules/14_advanced_python_2026/40_human_in_loop/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/40_human_in_loop/tests/test_basic.py rename to modules/14_advanced_python_2026/40_human_in_loop/tests/test_basic.py diff --git a/14_advanced_python_2026/41_react_pattern/README.md b/modules/14_advanced_python_2026/41_react_pattern/README.md similarity index 100% rename from 14_advanced_python_2026/41_react_pattern/README.md rename to modules/14_advanced_python_2026/41_react_pattern/README.md diff --git a/14_advanced_python_2026/41_react_pattern/examples/example_basic.py b/modules/14_advanced_python_2026/41_react_pattern/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/41_react_pattern/examples/example_basic.py rename to modules/14_advanced_python_2026/41_react_pattern/examples/example_basic.py diff --git a/14_advanced_python_2026/41_react_pattern/exercise/exercise_01.py b/modules/14_advanced_python_2026/41_react_pattern/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/41_react_pattern/exercise/exercise_01.py rename to modules/14_advanced_python_2026/41_react_pattern/exercise/exercise_01.py diff --git a/14_advanced_python_2026/41_react_pattern/references/links.md b/modules/14_advanced_python_2026/41_react_pattern/references/links.md similarity index 100% rename from 14_advanced_python_2026/41_react_pattern/references/links.md rename to modules/14_advanced_python_2026/41_react_pattern/references/links.md diff --git a/14_advanced_python_2026/41_react_pattern/tests/test_basic.py b/modules/14_advanced_python_2026/41_react_pattern/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/41_react_pattern/tests/test_basic.py rename to modules/14_advanced_python_2026/41_react_pattern/tests/test_basic.py diff --git a/14_advanced_python_2026/42_agent_executors/README.md b/modules/14_advanced_python_2026/42_agent_executors/README.md similarity index 100% rename from 14_advanced_python_2026/42_agent_executors/README.md rename to modules/14_advanced_python_2026/42_agent_executors/README.md diff --git a/14_advanced_python_2026/42_agent_executors/examples/example_basic.py b/modules/14_advanced_python_2026/42_agent_executors/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/42_agent_executors/examples/example_basic.py rename to modules/14_advanced_python_2026/42_agent_executors/examples/example_basic.py diff --git a/14_advanced_python_2026/42_agent_executors/exercise/exercise_01.py b/modules/14_advanced_python_2026/42_agent_executors/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/42_agent_executors/exercise/exercise_01.py rename to modules/14_advanced_python_2026/42_agent_executors/exercise/exercise_01.py diff --git a/14_advanced_python_2026/42_agent_executors/references/links.md b/modules/14_advanced_python_2026/42_agent_executors/references/links.md similarity index 100% rename from 14_advanced_python_2026/42_agent_executors/references/links.md rename to modules/14_advanced_python_2026/42_agent_executors/references/links.md diff --git a/14_advanced_python_2026/42_agent_executors/tests/test_basic.py b/modules/14_advanced_python_2026/42_agent_executors/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/42_agent_executors/tests/test_basic.py rename to modules/14_advanced_python_2026/42_agent_executors/tests/test_basic.py diff --git a/14_advanced_python_2026/43_multi_agent_systems/README.md b/modules/14_advanced_python_2026/43_multi_agent_systems/README.md similarity index 100% rename from 14_advanced_python_2026/43_multi_agent_systems/README.md rename to modules/14_advanced_python_2026/43_multi_agent_systems/README.md diff --git a/14_advanced_python_2026/43_multi_agent_systems/examples/example_basic.py b/modules/14_advanced_python_2026/43_multi_agent_systems/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/43_multi_agent_systems/examples/example_basic.py rename to modules/14_advanced_python_2026/43_multi_agent_systems/examples/example_basic.py diff --git a/14_advanced_python_2026/43_multi_agent_systems/exercise/exercise_01.py b/modules/14_advanced_python_2026/43_multi_agent_systems/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/43_multi_agent_systems/exercise/exercise_01.py rename to modules/14_advanced_python_2026/43_multi_agent_systems/exercise/exercise_01.py diff --git a/14_advanced_python_2026/43_multi_agent_systems/references/links.md b/modules/14_advanced_python_2026/43_multi_agent_systems/references/links.md similarity index 100% rename from 14_advanced_python_2026/43_multi_agent_systems/references/links.md rename to modules/14_advanced_python_2026/43_multi_agent_systems/references/links.md diff --git a/14_advanced_python_2026/43_multi_agent_systems/tests/test_basic.py b/modules/14_advanced_python_2026/43_multi_agent_systems/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/43_multi_agent_systems/tests/test_basic.py rename to modules/14_advanced_python_2026/43_multi_agent_systems/tests/test_basic.py diff --git a/14_advanced_python_2026/44_testing_llm_systems/README.md b/modules/14_advanced_python_2026/44_testing_llm_systems/README.md similarity index 100% rename from 14_advanced_python_2026/44_testing_llm_systems/README.md rename to modules/14_advanced_python_2026/44_testing_llm_systems/README.md diff --git a/14_advanced_python_2026/44_testing_llm_systems/examples/example_basic.py b/modules/14_advanced_python_2026/44_testing_llm_systems/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/44_testing_llm_systems/examples/example_basic.py rename to modules/14_advanced_python_2026/44_testing_llm_systems/examples/example_basic.py diff --git a/14_advanced_python_2026/44_testing_llm_systems/exercise/exercise_01.py b/modules/14_advanced_python_2026/44_testing_llm_systems/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/44_testing_llm_systems/exercise/exercise_01.py rename to modules/14_advanced_python_2026/44_testing_llm_systems/exercise/exercise_01.py diff --git a/14_advanced_python_2026/44_testing_llm_systems/references/links.md b/modules/14_advanced_python_2026/44_testing_llm_systems/references/links.md similarity index 100% rename from 14_advanced_python_2026/44_testing_llm_systems/references/links.md rename to modules/14_advanced_python_2026/44_testing_llm_systems/references/links.md diff --git a/14_advanced_python_2026/44_testing_llm_systems/tests/test_basic.py b/modules/14_advanced_python_2026/44_testing_llm_systems/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/44_testing_llm_systems/tests/test_basic.py rename to modules/14_advanced_python_2026/44_testing_llm_systems/tests/test_basic.py diff --git a/14_advanced_python_2026/45_cost_tracking/README.md b/modules/14_advanced_python_2026/45_cost_tracking/README.md similarity index 100% rename from 14_advanced_python_2026/45_cost_tracking/README.md rename to modules/14_advanced_python_2026/45_cost_tracking/README.md diff --git a/14_advanced_python_2026/45_cost_tracking/examples/example_basic.py b/modules/14_advanced_python_2026/45_cost_tracking/examples/example_basic.py similarity index 100% rename from 14_advanced_python_2026/45_cost_tracking/examples/example_basic.py rename to modules/14_advanced_python_2026/45_cost_tracking/examples/example_basic.py diff --git a/14_advanced_python_2026/45_cost_tracking/exercise/exercise_01.py b/modules/14_advanced_python_2026/45_cost_tracking/exercise/exercise_01.py similarity index 100% rename from 14_advanced_python_2026/45_cost_tracking/exercise/exercise_01.py rename to modules/14_advanced_python_2026/45_cost_tracking/exercise/exercise_01.py diff --git a/14_advanced_python_2026/45_cost_tracking/references/links.md b/modules/14_advanced_python_2026/45_cost_tracking/references/links.md similarity index 100% rename from 14_advanced_python_2026/45_cost_tracking/references/links.md rename to modules/14_advanced_python_2026/45_cost_tracking/references/links.md diff --git a/14_advanced_python_2026/45_cost_tracking/tests/test_basic.py b/modules/14_advanced_python_2026/45_cost_tracking/tests/test_basic.py similarity index 100% rename from 14_advanced_python_2026/45_cost_tracking/tests/test_basic.py rename to modules/14_advanced_python_2026/45_cost_tracking/tests/test_basic.py diff --git a/14_advanced_python_2026/README.md b/modules/14_advanced_python_2026/README.md similarity index 100% rename from 14_advanced_python_2026/README.md rename to modules/14_advanced_python_2026/README.md diff --git a/15_basic_data_science/README.md b/modules/15_basic_data_science/README.md similarity index 100% rename from 15_basic_data_science/README.md rename to modules/15_basic_data_science/README.md diff --git a/15_basic_data_science/data_cleaning/README.md b/modules/15_basic_data_science/data_cleaning/README.md similarity index 100% rename from 15_basic_data_science/data_cleaning/README.md rename to modules/15_basic_data_science/data_cleaning/README.md diff --git a/15_basic_data_science/data_cleaning/examples/example_basic.py b/modules/15_basic_data_science/data_cleaning/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/data_cleaning/examples/example_basic.py rename to modules/15_basic_data_science/data_cleaning/examples/example_basic.py diff --git a/15_basic_data_science/data_cleaning/exercise/exercise_01.py b/modules/15_basic_data_science/data_cleaning/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/data_cleaning/exercise/exercise_01.py rename to modules/15_basic_data_science/data_cleaning/exercise/exercise_01.py diff --git a/15_basic_data_science/data_cleaning/references/links.md b/modules/15_basic_data_science/data_cleaning/references/links.md similarity index 100% rename from 15_basic_data_science/data_cleaning/references/links.md rename to modules/15_basic_data_science/data_cleaning/references/links.md diff --git a/15_basic_data_science/data_cleaning/tests/test_basic.py b/modules/15_basic_data_science/data_cleaning/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/data_cleaning/tests/test_basic.py rename to modules/15_basic_data_science/data_cleaning/tests/test_basic.py diff --git a/15_basic_data_science/exploratory_analysis/README.md b/modules/15_basic_data_science/exploratory_analysis/README.md similarity index 100% rename from 15_basic_data_science/exploratory_analysis/README.md rename to modules/15_basic_data_science/exploratory_analysis/README.md diff --git a/15_basic_data_science/exploratory_analysis/examples/example_basic.py b/modules/15_basic_data_science/exploratory_analysis/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/exploratory_analysis/examples/example_basic.py rename to modules/15_basic_data_science/exploratory_analysis/examples/example_basic.py diff --git a/15_basic_data_science/exploratory_analysis/exercise/exercise_01.py b/modules/15_basic_data_science/exploratory_analysis/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/exploratory_analysis/exercise/exercise_01.py rename to modules/15_basic_data_science/exploratory_analysis/exercise/exercise_01.py diff --git a/15_basic_data_science/exploratory_analysis/references/links.md b/modules/15_basic_data_science/exploratory_analysis/references/links.md similarity index 100% rename from 15_basic_data_science/exploratory_analysis/references/links.md rename to modules/15_basic_data_science/exploratory_analysis/references/links.md diff --git a/15_basic_data_science/exploratory_analysis/tests/test_basic.py b/modules/15_basic_data_science/exploratory_analysis/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/exploratory_analysis/tests/test_basic.py rename to modules/15_basic_data_science/exploratory_analysis/tests/test_basic.py diff --git a/15_basic_data_science/jupyter_notebooks_optional/README.md b/modules/15_basic_data_science/jupyter_notebooks_optional/README.md similarity index 100% rename from 15_basic_data_science/jupyter_notebooks_optional/README.md rename to modules/15_basic_data_science/jupyter_notebooks_optional/README.md diff --git a/15_basic_data_science/jupyter_notebooks_optional/examples/example_basic.py b/modules/15_basic_data_science/jupyter_notebooks_optional/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/jupyter_notebooks_optional/examples/example_basic.py rename to modules/15_basic_data_science/jupyter_notebooks_optional/examples/example_basic.py diff --git a/15_basic_data_science/jupyter_notebooks_optional/exercise/exercise_01.py b/modules/15_basic_data_science/jupyter_notebooks_optional/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/jupyter_notebooks_optional/exercise/exercise_01.py rename to modules/15_basic_data_science/jupyter_notebooks_optional/exercise/exercise_01.py diff --git a/15_basic_data_science/jupyter_notebooks_optional/references/links.md b/modules/15_basic_data_science/jupyter_notebooks_optional/references/links.md similarity index 100% rename from 15_basic_data_science/jupyter_notebooks_optional/references/links.md rename to modules/15_basic_data_science/jupyter_notebooks_optional/references/links.md diff --git a/15_basic_data_science/jupyter_notebooks_optional/tests/test_basic.py b/modules/15_basic_data_science/jupyter_notebooks_optional/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/jupyter_notebooks_optional/tests/test_basic.py rename to modules/15_basic_data_science/jupyter_notebooks_optional/tests/test_basic.py diff --git a/15_basic_data_science/matplotlib_basics/README.md b/modules/15_basic_data_science/matplotlib_basics/README.md similarity index 100% rename from 15_basic_data_science/matplotlib_basics/README.md rename to modules/15_basic_data_science/matplotlib_basics/README.md diff --git a/15_basic_data_science/matplotlib_basics/examples/example_basic.py b/modules/15_basic_data_science/matplotlib_basics/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/matplotlib_basics/examples/example_basic.py rename to modules/15_basic_data_science/matplotlib_basics/examples/example_basic.py diff --git a/15_basic_data_science/matplotlib_basics/exercise/exercise_01.py b/modules/15_basic_data_science/matplotlib_basics/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/matplotlib_basics/exercise/exercise_01.py rename to modules/15_basic_data_science/matplotlib_basics/exercise/exercise_01.py diff --git a/15_basic_data_science/matplotlib_basics/references/links.md b/modules/15_basic_data_science/matplotlib_basics/references/links.md similarity index 100% rename from 15_basic_data_science/matplotlib_basics/references/links.md rename to modules/15_basic_data_science/matplotlib_basics/references/links.md diff --git a/15_basic_data_science/matplotlib_basics/tests/test_basic.py b/modules/15_basic_data_science/matplotlib_basics/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/matplotlib_basics/tests/test_basic.py rename to modules/15_basic_data_science/matplotlib_basics/tests/test_basic.py diff --git a/15_basic_data_science/numpy_basics/README.md b/modules/15_basic_data_science/numpy_basics/README.md similarity index 100% rename from 15_basic_data_science/numpy_basics/README.md rename to modules/15_basic_data_science/numpy_basics/README.md diff --git a/15_basic_data_science/numpy_basics/examples/example_basic.py b/modules/15_basic_data_science/numpy_basics/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/numpy_basics/examples/example_basic.py rename to modules/15_basic_data_science/numpy_basics/examples/example_basic.py diff --git a/15_basic_data_science/numpy_basics/exercise/exercise_01.py b/modules/15_basic_data_science/numpy_basics/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/numpy_basics/exercise/exercise_01.py rename to modules/15_basic_data_science/numpy_basics/exercise/exercise_01.py diff --git a/15_basic_data_science/numpy_basics/references/links.md b/modules/15_basic_data_science/numpy_basics/references/links.md similarity index 100% rename from 15_basic_data_science/numpy_basics/references/links.md rename to modules/15_basic_data_science/numpy_basics/references/links.md diff --git a/15_basic_data_science/numpy_basics/tests/test_basic.py b/modules/15_basic_data_science/numpy_basics/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/numpy_basics/tests/test_basic.py rename to modules/15_basic_data_science/numpy_basics/tests/test_basic.py diff --git a/15_basic_data_science/pandas_intro/README.md b/modules/15_basic_data_science/pandas_intro/README.md similarity index 100% rename from 15_basic_data_science/pandas_intro/README.md rename to modules/15_basic_data_science/pandas_intro/README.md diff --git a/15_basic_data_science/pandas_intro/examples/example_basic.py b/modules/15_basic_data_science/pandas_intro/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/pandas_intro/examples/example_basic.py rename to modules/15_basic_data_science/pandas_intro/examples/example_basic.py diff --git a/15_basic_data_science/pandas_intro/exercise/exercise_01.py b/modules/15_basic_data_science/pandas_intro/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/pandas_intro/exercise/exercise_01.py rename to modules/15_basic_data_science/pandas_intro/exercise/exercise_01.py diff --git a/15_basic_data_science/pandas_intro/references/links.md b/modules/15_basic_data_science/pandas_intro/references/links.md similarity index 100% rename from 15_basic_data_science/pandas_intro/references/links.md rename to modules/15_basic_data_science/pandas_intro/references/links.md diff --git a/15_basic_data_science/pandas_intro/tests/test_basic.py b/modules/15_basic_data_science/pandas_intro/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/pandas_intro/tests/test_basic.py rename to modules/15_basic_data_science/pandas_intro/tests/test_basic.py diff --git a/15_basic_data_science/pandas_operations/README.md b/modules/15_basic_data_science/pandas_operations/README.md similarity index 100% rename from 15_basic_data_science/pandas_operations/README.md rename to modules/15_basic_data_science/pandas_operations/README.md diff --git a/15_basic_data_science/pandas_operations/examples/example_basic.py b/modules/15_basic_data_science/pandas_operations/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/pandas_operations/examples/example_basic.py rename to modules/15_basic_data_science/pandas_operations/examples/example_basic.py diff --git a/15_basic_data_science/pandas_operations/exercise/exercise_01.py b/modules/15_basic_data_science/pandas_operations/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/pandas_operations/exercise/exercise_01.py rename to modules/15_basic_data_science/pandas_operations/exercise/exercise_01.py diff --git a/15_basic_data_science/pandas_operations/references/links.md b/modules/15_basic_data_science/pandas_operations/references/links.md similarity index 100% rename from 15_basic_data_science/pandas_operations/references/links.md rename to modules/15_basic_data_science/pandas_operations/references/links.md diff --git a/15_basic_data_science/pandas_operations/tests/test_basic.py b/modules/15_basic_data_science/pandas_operations/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/pandas_operations/tests/test_basic.py rename to modules/15_basic_data_science/pandas_operations/tests/test_basic.py diff --git a/15_basic_data_science/pandas_performance/README.md b/modules/15_basic_data_science/pandas_performance/README.md similarity index 100% rename from 15_basic_data_science/pandas_performance/README.md rename to modules/15_basic_data_science/pandas_performance/README.md diff --git a/15_basic_data_science/pandas_performance/examples/example_basic.py b/modules/15_basic_data_science/pandas_performance/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/pandas_performance/examples/example_basic.py rename to modules/15_basic_data_science/pandas_performance/examples/example_basic.py diff --git a/15_basic_data_science/pandas_performance/exercise/exercise_01.py b/modules/15_basic_data_science/pandas_performance/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/pandas_performance/exercise/exercise_01.py rename to modules/15_basic_data_science/pandas_performance/exercise/exercise_01.py diff --git a/15_basic_data_science/pandas_performance/references/links.md b/modules/15_basic_data_science/pandas_performance/references/links.md similarity index 100% rename from 15_basic_data_science/pandas_performance/references/links.md rename to modules/15_basic_data_science/pandas_performance/references/links.md diff --git a/15_basic_data_science/pandas_performance/tests/test_basic.py b/modules/15_basic_data_science/pandas_performance/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/pandas_performance/tests/test_basic.py rename to modules/15_basic_data_science/pandas_performance/tests/test_basic.py diff --git a/15_basic_data_science/polars_intro/README.md b/modules/15_basic_data_science/polars_intro/README.md similarity index 100% rename from 15_basic_data_science/polars_intro/README.md rename to modules/15_basic_data_science/polars_intro/README.md diff --git a/15_basic_data_science/polars_intro/examples/example_basic.py b/modules/15_basic_data_science/polars_intro/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/polars_intro/examples/example_basic.py rename to modules/15_basic_data_science/polars_intro/examples/example_basic.py diff --git a/15_basic_data_science/polars_intro/exercise/exercise_01.py b/modules/15_basic_data_science/polars_intro/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/polars_intro/exercise/exercise_01.py rename to modules/15_basic_data_science/polars_intro/exercise/exercise_01.py diff --git a/15_basic_data_science/polars_intro/references/links.md b/modules/15_basic_data_science/polars_intro/references/links.md similarity index 100% rename from 15_basic_data_science/polars_intro/references/links.md rename to modules/15_basic_data_science/polars_intro/references/links.md diff --git a/15_basic_data_science/polars_intro/tests/test_basic.py b/modules/15_basic_data_science/polars_intro/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/polars_intro/tests/test_basic.py rename to modules/15_basic_data_science/polars_intro/tests/test_basic.py diff --git a/15_basic_data_science/seaborn_viz/README.md b/modules/15_basic_data_science/seaborn_viz/README.md similarity index 100% rename from 15_basic_data_science/seaborn_viz/README.md rename to modules/15_basic_data_science/seaborn_viz/README.md diff --git a/15_basic_data_science/seaborn_viz/examples/example_basic.py b/modules/15_basic_data_science/seaborn_viz/examples/example_basic.py similarity index 100% rename from 15_basic_data_science/seaborn_viz/examples/example_basic.py rename to modules/15_basic_data_science/seaborn_viz/examples/example_basic.py diff --git a/15_basic_data_science/seaborn_viz/exercise/exercise_01.py b/modules/15_basic_data_science/seaborn_viz/exercise/exercise_01.py similarity index 100% rename from 15_basic_data_science/seaborn_viz/exercise/exercise_01.py rename to modules/15_basic_data_science/seaborn_viz/exercise/exercise_01.py diff --git a/15_basic_data_science/seaborn_viz/references/links.md b/modules/15_basic_data_science/seaborn_viz/references/links.md similarity index 100% rename from 15_basic_data_science/seaborn_viz/references/links.md rename to modules/15_basic_data_science/seaborn_viz/references/links.md diff --git a/15_basic_data_science/seaborn_viz/tests/test_basic.py b/modules/15_basic_data_science/seaborn_viz/tests/test_basic.py similarity index 100% rename from 15_basic_data_science/seaborn_viz/tests/test_basic.py rename to modules/15_basic_data_science/seaborn_viz/tests/test_basic.py diff --git a/16_modern_security/01_supply_chain_security/README.md b/modules/16_modern_security/01_supply_chain_security/README.md similarity index 100% rename from 16_modern_security/01_supply_chain_security/README.md rename to modules/16_modern_security/01_supply_chain_security/README.md diff --git a/16_modern_security/01_supply_chain_security/examples/example_basic.py b/modules/16_modern_security/01_supply_chain_security/examples/example_basic.py similarity index 100% rename from 16_modern_security/01_supply_chain_security/examples/example_basic.py rename to modules/16_modern_security/01_supply_chain_security/examples/example_basic.py diff --git a/16_modern_security/01_supply_chain_security/exercise/exercise_01.py b/modules/16_modern_security/01_supply_chain_security/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/01_supply_chain_security/exercise/exercise_01.py rename to modules/16_modern_security/01_supply_chain_security/exercise/exercise_01.py diff --git a/16_modern_security/01_supply_chain_security/references/links.md b/modules/16_modern_security/01_supply_chain_security/references/links.md similarity index 100% rename from 16_modern_security/01_supply_chain_security/references/links.md rename to modules/16_modern_security/01_supply_chain_security/references/links.md diff --git a/16_modern_security/01_supply_chain_security/tests/test_basic.py b/modules/16_modern_security/01_supply_chain_security/tests/test_basic.py similarity index 100% rename from 16_modern_security/01_supply_chain_security/tests/test_basic.py rename to modules/16_modern_security/01_supply_chain_security/tests/test_basic.py diff --git a/16_modern_security/02_dependency_attacks/README.md b/modules/16_modern_security/02_dependency_attacks/README.md similarity index 100% rename from 16_modern_security/02_dependency_attacks/README.md rename to modules/16_modern_security/02_dependency_attacks/README.md diff --git a/16_modern_security/02_dependency_attacks/examples/example_basic.py b/modules/16_modern_security/02_dependency_attacks/examples/example_basic.py similarity index 100% rename from 16_modern_security/02_dependency_attacks/examples/example_basic.py rename to modules/16_modern_security/02_dependency_attacks/examples/example_basic.py diff --git a/16_modern_security/02_dependency_attacks/exercise/exercise_01.py b/modules/16_modern_security/02_dependency_attacks/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/02_dependency_attacks/exercise/exercise_01.py rename to modules/16_modern_security/02_dependency_attacks/exercise/exercise_01.py diff --git a/16_modern_security/02_dependency_attacks/references/links.md b/modules/16_modern_security/02_dependency_attacks/references/links.md similarity index 100% rename from 16_modern_security/02_dependency_attacks/references/links.md rename to modules/16_modern_security/02_dependency_attacks/references/links.md diff --git a/16_modern_security/02_dependency_attacks/tests/test_basic.py b/modules/16_modern_security/02_dependency_attacks/tests/test_basic.py similarity index 100% rename from 16_modern_security/02_dependency_attacks/tests/test_basic.py rename to modules/16_modern_security/02_dependency_attacks/tests/test_basic.py diff --git a/16_modern_security/03_typosquatting_pypi/README.md b/modules/16_modern_security/03_typosquatting_pypi/README.md similarity index 100% rename from 16_modern_security/03_typosquatting_pypi/README.md rename to modules/16_modern_security/03_typosquatting_pypi/README.md diff --git a/16_modern_security/03_typosquatting_pypi/examples/example_basic.py b/modules/16_modern_security/03_typosquatting_pypi/examples/example_basic.py similarity index 100% rename from 16_modern_security/03_typosquatting_pypi/examples/example_basic.py rename to modules/16_modern_security/03_typosquatting_pypi/examples/example_basic.py diff --git a/16_modern_security/03_typosquatting_pypi/exercise/exercise_01.py b/modules/16_modern_security/03_typosquatting_pypi/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/03_typosquatting_pypi/exercise/exercise_01.py rename to modules/16_modern_security/03_typosquatting_pypi/exercise/exercise_01.py diff --git a/16_modern_security/03_typosquatting_pypi/references/links.md b/modules/16_modern_security/03_typosquatting_pypi/references/links.md similarity index 100% rename from 16_modern_security/03_typosquatting_pypi/references/links.md rename to modules/16_modern_security/03_typosquatting_pypi/references/links.md diff --git a/16_modern_security/03_typosquatting_pypi/tests/test_basic.py b/modules/16_modern_security/03_typosquatting_pypi/tests/test_basic.py similarity index 100% rename from 16_modern_security/03_typosquatting_pypi/tests/test_basic.py rename to modules/16_modern_security/03_typosquatting_pypi/tests/test_basic.py diff --git a/16_modern_security/04_malicious_packages/README.md b/modules/16_modern_security/04_malicious_packages/README.md similarity index 100% rename from 16_modern_security/04_malicious_packages/README.md rename to modules/16_modern_security/04_malicious_packages/README.md diff --git a/16_modern_security/04_malicious_packages/examples/example_basic.py b/modules/16_modern_security/04_malicious_packages/examples/example_basic.py similarity index 100% rename from 16_modern_security/04_malicious_packages/examples/example_basic.py rename to modules/16_modern_security/04_malicious_packages/examples/example_basic.py diff --git a/16_modern_security/04_malicious_packages/exercise/exercise_01.py b/modules/16_modern_security/04_malicious_packages/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/04_malicious_packages/exercise/exercise_01.py rename to modules/16_modern_security/04_malicious_packages/exercise/exercise_01.py diff --git a/16_modern_security/04_malicious_packages/references/links.md b/modules/16_modern_security/04_malicious_packages/references/links.md similarity index 100% rename from 16_modern_security/04_malicious_packages/references/links.md rename to modules/16_modern_security/04_malicious_packages/references/links.md diff --git a/16_modern_security/04_malicious_packages/tests/test_basic.py b/modules/16_modern_security/04_malicious_packages/tests/test_basic.py similarity index 100% rename from 16_modern_security/04_malicious_packages/tests/test_basic.py rename to modules/16_modern_security/04_malicious_packages/tests/test_basic.py diff --git a/16_modern_security/05_sbom_introduction/README.md b/modules/16_modern_security/05_sbom_introduction/README.md similarity index 100% rename from 16_modern_security/05_sbom_introduction/README.md rename to modules/16_modern_security/05_sbom_introduction/README.md diff --git a/16_modern_security/05_sbom_introduction/examples/example_basic.py b/modules/16_modern_security/05_sbom_introduction/examples/example_basic.py similarity index 100% rename from 16_modern_security/05_sbom_introduction/examples/example_basic.py rename to modules/16_modern_security/05_sbom_introduction/examples/example_basic.py diff --git a/16_modern_security/05_sbom_introduction/exercise/exercise_01.py b/modules/16_modern_security/05_sbom_introduction/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/05_sbom_introduction/exercise/exercise_01.py rename to modules/16_modern_security/05_sbom_introduction/exercise/exercise_01.py diff --git a/16_modern_security/05_sbom_introduction/references/links.md b/modules/16_modern_security/05_sbom_introduction/references/links.md similarity index 100% rename from 16_modern_security/05_sbom_introduction/references/links.md rename to modules/16_modern_security/05_sbom_introduction/references/links.md diff --git a/16_modern_security/05_sbom_introduction/tests/test_basic.py b/modules/16_modern_security/05_sbom_introduction/tests/test_basic.py similarity index 100% rename from 16_modern_security/05_sbom_introduction/tests/test_basic.py rename to modules/16_modern_security/05_sbom_introduction/tests/test_basic.py diff --git a/16_modern_security/06_sbom_formats_spdx_cyclonedx/README.md b/modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/README.md similarity index 100% rename from 16_modern_security/06_sbom_formats_spdx_cyclonedx/README.md rename to modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/README.md diff --git a/16_modern_security/06_sbom_formats_spdx_cyclonedx/examples/example_basic.py b/modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/examples/example_basic.py similarity index 100% rename from 16_modern_security/06_sbom_formats_spdx_cyclonedx/examples/example_basic.py rename to modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/examples/example_basic.py diff --git a/16_modern_security/06_sbom_formats_spdx_cyclonedx/exercise/exercise_01.py b/modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/06_sbom_formats_spdx_cyclonedx/exercise/exercise_01.py rename to modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/exercise/exercise_01.py diff --git a/16_modern_security/06_sbom_formats_spdx_cyclonedx/references/links.md b/modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/references/links.md similarity index 100% rename from 16_modern_security/06_sbom_formats_spdx_cyclonedx/references/links.md rename to modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/references/links.md diff --git a/16_modern_security/06_sbom_formats_spdx_cyclonedx/tests/test_basic.py b/modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/tests/test_basic.py similarity index 100% rename from 16_modern_security/06_sbom_formats_spdx_cyclonedx/tests/test_basic.py rename to modules/16_modern_security/06_sbom_formats_spdx_cyclonedx/tests/test_basic.py diff --git a/16_modern_security/07_sbom_generation_syft/README.md b/modules/16_modern_security/07_sbom_generation_syft/README.md similarity index 100% rename from 16_modern_security/07_sbom_generation_syft/README.md rename to modules/16_modern_security/07_sbom_generation_syft/README.md diff --git a/16_modern_security/07_sbom_generation_syft/examples/example_basic.py b/modules/16_modern_security/07_sbom_generation_syft/examples/example_basic.py similarity index 100% rename from 16_modern_security/07_sbom_generation_syft/examples/example_basic.py rename to modules/16_modern_security/07_sbom_generation_syft/examples/example_basic.py diff --git a/16_modern_security/07_sbom_generation_syft/exercise/exercise_01.py b/modules/16_modern_security/07_sbom_generation_syft/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/07_sbom_generation_syft/exercise/exercise_01.py rename to modules/16_modern_security/07_sbom_generation_syft/exercise/exercise_01.py diff --git a/16_modern_security/07_sbom_generation_syft/references/links.md b/modules/16_modern_security/07_sbom_generation_syft/references/links.md similarity index 100% rename from 16_modern_security/07_sbom_generation_syft/references/links.md rename to modules/16_modern_security/07_sbom_generation_syft/references/links.md diff --git a/16_modern_security/07_sbom_generation_syft/tests/test_basic.py b/modules/16_modern_security/07_sbom_generation_syft/tests/test_basic.py similarity index 100% rename from 16_modern_security/07_sbom_generation_syft/tests/test_basic.py rename to modules/16_modern_security/07_sbom_generation_syft/tests/test_basic.py diff --git a/16_modern_security/08_sbom_vulnerability_analysis/README.md b/modules/16_modern_security/08_sbom_vulnerability_analysis/README.md similarity index 100% rename from 16_modern_security/08_sbom_vulnerability_analysis/README.md rename to modules/16_modern_security/08_sbom_vulnerability_analysis/README.md diff --git a/16_modern_security/08_sbom_vulnerability_analysis/examples/example_basic.py b/modules/16_modern_security/08_sbom_vulnerability_analysis/examples/example_basic.py similarity index 100% rename from 16_modern_security/08_sbom_vulnerability_analysis/examples/example_basic.py rename to modules/16_modern_security/08_sbom_vulnerability_analysis/examples/example_basic.py diff --git a/16_modern_security/08_sbom_vulnerability_analysis/exercise/exercise_01.py b/modules/16_modern_security/08_sbom_vulnerability_analysis/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/08_sbom_vulnerability_analysis/exercise/exercise_01.py rename to modules/16_modern_security/08_sbom_vulnerability_analysis/exercise/exercise_01.py diff --git a/16_modern_security/08_sbom_vulnerability_analysis/references/links.md b/modules/16_modern_security/08_sbom_vulnerability_analysis/references/links.md similarity index 100% rename from 16_modern_security/08_sbom_vulnerability_analysis/references/links.md rename to modules/16_modern_security/08_sbom_vulnerability_analysis/references/links.md diff --git a/16_modern_security/08_sbom_vulnerability_analysis/tests/test_basic.py b/modules/16_modern_security/08_sbom_vulnerability_analysis/tests/test_basic.py similarity index 100% rename from 16_modern_security/08_sbom_vulnerability_analysis/tests/test_basic.py rename to modules/16_modern_security/08_sbom_vulnerability_analysis/tests/test_basic.py diff --git a/16_modern_security/09_sbom_ci_cd/README.md b/modules/16_modern_security/09_sbom_ci_cd/README.md similarity index 100% rename from 16_modern_security/09_sbom_ci_cd/README.md rename to modules/16_modern_security/09_sbom_ci_cd/README.md diff --git a/16_modern_security/09_sbom_ci_cd/examples/example_basic.py b/modules/16_modern_security/09_sbom_ci_cd/examples/example_basic.py similarity index 100% rename from 16_modern_security/09_sbom_ci_cd/examples/example_basic.py rename to modules/16_modern_security/09_sbom_ci_cd/examples/example_basic.py diff --git a/16_modern_security/09_sbom_ci_cd/exercise/exercise_01.py b/modules/16_modern_security/09_sbom_ci_cd/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/09_sbom_ci_cd/exercise/exercise_01.py rename to modules/16_modern_security/09_sbom_ci_cd/exercise/exercise_01.py diff --git a/16_modern_security/09_sbom_ci_cd/references/links.md b/modules/16_modern_security/09_sbom_ci_cd/references/links.md similarity index 100% rename from 16_modern_security/09_sbom_ci_cd/references/links.md rename to modules/16_modern_security/09_sbom_ci_cd/references/links.md diff --git a/16_modern_security/09_sbom_ci_cd/tests/test_basic.py b/modules/16_modern_security/09_sbom_ci_cd/tests/test_basic.py similarity index 100% rename from 16_modern_security/09_sbom_ci_cd/tests/test_basic.py rename to modules/16_modern_security/09_sbom_ci_cd/tests/test_basic.py diff --git a/16_modern_security/10_sbom_signing/README.md b/modules/16_modern_security/10_sbom_signing/README.md similarity index 100% rename from 16_modern_security/10_sbom_signing/README.md rename to modules/16_modern_security/10_sbom_signing/README.md diff --git a/16_modern_security/10_sbom_signing/examples/example_basic.py b/modules/16_modern_security/10_sbom_signing/examples/example_basic.py similarity index 100% rename from 16_modern_security/10_sbom_signing/examples/example_basic.py rename to modules/16_modern_security/10_sbom_signing/examples/example_basic.py diff --git a/16_modern_security/10_sbom_signing/exercise/exercise_01.py b/modules/16_modern_security/10_sbom_signing/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/10_sbom_signing/exercise/exercise_01.py rename to modules/16_modern_security/10_sbom_signing/exercise/exercise_01.py diff --git a/16_modern_security/10_sbom_signing/references/links.md b/modules/16_modern_security/10_sbom_signing/references/links.md similarity index 100% rename from 16_modern_security/10_sbom_signing/references/links.md rename to modules/16_modern_security/10_sbom_signing/references/links.md diff --git a/16_modern_security/10_sbom_signing/tests/test_basic.py b/modules/16_modern_security/10_sbom_signing/tests/test_basic.py similarity index 100% rename from 16_modern_security/10_sbom_signing/tests/test_basic.py rename to modules/16_modern_security/10_sbom_signing/tests/test_basic.py diff --git a/16_modern_security/11_sigstore_architecture/README.md b/modules/16_modern_security/11_sigstore_architecture/README.md similarity index 100% rename from 16_modern_security/11_sigstore_architecture/README.md rename to modules/16_modern_security/11_sigstore_architecture/README.md diff --git a/16_modern_security/11_sigstore_architecture/examples/example_basic.py b/modules/16_modern_security/11_sigstore_architecture/examples/example_basic.py similarity index 100% rename from 16_modern_security/11_sigstore_architecture/examples/example_basic.py rename to modules/16_modern_security/11_sigstore_architecture/examples/example_basic.py diff --git a/16_modern_security/11_sigstore_architecture/exercise/exercise_01.py b/modules/16_modern_security/11_sigstore_architecture/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/11_sigstore_architecture/exercise/exercise_01.py rename to modules/16_modern_security/11_sigstore_architecture/exercise/exercise_01.py diff --git a/16_modern_security/11_sigstore_architecture/references/links.md b/modules/16_modern_security/11_sigstore_architecture/references/links.md similarity index 100% rename from 16_modern_security/11_sigstore_architecture/references/links.md rename to modules/16_modern_security/11_sigstore_architecture/references/links.md diff --git a/16_modern_security/11_sigstore_architecture/tests/test_basic.py b/modules/16_modern_security/11_sigstore_architecture/tests/test_basic.py similarity index 100% rename from 16_modern_security/11_sigstore_architecture/tests/test_basic.py rename to modules/16_modern_security/11_sigstore_architecture/tests/test_basic.py diff --git a/16_modern_security/12_keyless_signing_oidc/README.md b/modules/16_modern_security/12_keyless_signing_oidc/README.md similarity index 100% rename from 16_modern_security/12_keyless_signing_oidc/README.md rename to modules/16_modern_security/12_keyless_signing_oidc/README.md diff --git a/16_modern_security/12_keyless_signing_oidc/examples/example_basic.py b/modules/16_modern_security/12_keyless_signing_oidc/examples/example_basic.py similarity index 100% rename from 16_modern_security/12_keyless_signing_oidc/examples/example_basic.py rename to modules/16_modern_security/12_keyless_signing_oidc/examples/example_basic.py diff --git a/16_modern_security/12_keyless_signing_oidc/exercise/exercise_01.py b/modules/16_modern_security/12_keyless_signing_oidc/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/12_keyless_signing_oidc/exercise/exercise_01.py rename to modules/16_modern_security/12_keyless_signing_oidc/exercise/exercise_01.py diff --git a/16_modern_security/12_keyless_signing_oidc/references/links.md b/modules/16_modern_security/12_keyless_signing_oidc/references/links.md similarity index 100% rename from 16_modern_security/12_keyless_signing_oidc/references/links.md rename to modules/16_modern_security/12_keyless_signing_oidc/references/links.md diff --git a/16_modern_security/12_keyless_signing_oidc/tests/test_basic.py b/modules/16_modern_security/12_keyless_signing_oidc/tests/test_basic.py similarity index 100% rename from 16_modern_security/12_keyless_signing_oidc/tests/test_basic.py rename to modules/16_modern_security/12_keyless_signing_oidc/tests/test_basic.py diff --git a/16_modern_security/13_signing_wheels_cosign/README.md b/modules/16_modern_security/13_signing_wheels_cosign/README.md similarity index 100% rename from 16_modern_security/13_signing_wheels_cosign/README.md rename to modules/16_modern_security/13_signing_wheels_cosign/README.md diff --git a/16_modern_security/13_signing_wheels_cosign/examples/example_basic.py b/modules/16_modern_security/13_signing_wheels_cosign/examples/example_basic.py similarity index 100% rename from 16_modern_security/13_signing_wheels_cosign/examples/example_basic.py rename to modules/16_modern_security/13_signing_wheels_cosign/examples/example_basic.py diff --git a/16_modern_security/13_signing_wheels_cosign/exercise/exercise_01.py b/modules/16_modern_security/13_signing_wheels_cosign/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/13_signing_wheels_cosign/exercise/exercise_01.py rename to modules/16_modern_security/13_signing_wheels_cosign/exercise/exercise_01.py diff --git a/16_modern_security/13_signing_wheels_cosign/references/links.md b/modules/16_modern_security/13_signing_wheels_cosign/references/links.md similarity index 100% rename from 16_modern_security/13_signing_wheels_cosign/references/links.md rename to modules/16_modern_security/13_signing_wheels_cosign/references/links.md diff --git a/16_modern_security/13_signing_wheels_cosign/tests/test_basic.py b/modules/16_modern_security/13_signing_wheels_cosign/tests/test_basic.py similarity index 100% rename from 16_modern_security/13_signing_wheels_cosign/tests/test_basic.py rename to modules/16_modern_security/13_signing_wheels_cosign/tests/test_basic.py diff --git a/16_modern_security/14_signing_containers/README.md b/modules/16_modern_security/14_signing_containers/README.md similarity index 100% rename from 16_modern_security/14_signing_containers/README.md rename to modules/16_modern_security/14_signing_containers/README.md diff --git a/16_modern_security/14_signing_containers/examples/example_basic.py b/modules/16_modern_security/14_signing_containers/examples/example_basic.py similarity index 100% rename from 16_modern_security/14_signing_containers/examples/example_basic.py rename to modules/16_modern_security/14_signing_containers/examples/example_basic.py diff --git a/16_modern_security/14_signing_containers/exercise/exercise_01.py b/modules/16_modern_security/14_signing_containers/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/14_signing_containers/exercise/exercise_01.py rename to modules/16_modern_security/14_signing_containers/exercise/exercise_01.py diff --git a/16_modern_security/14_signing_containers/references/links.md b/modules/16_modern_security/14_signing_containers/references/links.md similarity index 100% rename from 16_modern_security/14_signing_containers/references/links.md rename to modules/16_modern_security/14_signing_containers/references/links.md diff --git a/16_modern_security/14_signing_containers/tests/test_basic.py b/modules/16_modern_security/14_signing_containers/tests/test_basic.py similarity index 100% rename from 16_modern_security/14_signing_containers/tests/test_basic.py rename to modules/16_modern_security/14_signing_containers/tests/test_basic.py diff --git a/16_modern_security/15_signature_verification/README.md b/modules/16_modern_security/15_signature_verification/README.md similarity index 100% rename from 16_modern_security/15_signature_verification/README.md rename to modules/16_modern_security/15_signature_verification/README.md diff --git a/16_modern_security/15_signature_verification/examples/example_basic.py b/modules/16_modern_security/15_signature_verification/examples/example_basic.py similarity index 100% rename from 16_modern_security/15_signature_verification/examples/example_basic.py rename to modules/16_modern_security/15_signature_verification/examples/example_basic.py diff --git a/16_modern_security/15_signature_verification/exercise/exercise_01.py b/modules/16_modern_security/15_signature_verification/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/15_signature_verification/exercise/exercise_01.py rename to modules/16_modern_security/15_signature_verification/exercise/exercise_01.py diff --git a/16_modern_security/15_signature_verification/references/links.md b/modules/16_modern_security/15_signature_verification/references/links.md similarity index 100% rename from 16_modern_security/15_signature_verification/references/links.md rename to modules/16_modern_security/15_signature_verification/references/links.md diff --git a/16_modern_security/15_signature_verification/tests/test_basic.py b/modules/16_modern_security/15_signature_verification/tests/test_basic.py similarity index 100% rename from 16_modern_security/15_signature_verification/tests/test_basic.py rename to modules/16_modern_security/15_signature_verification/tests/test_basic.py diff --git a/16_modern_security/16_transparency_logs_rekor/README.md b/modules/16_modern_security/16_transparency_logs_rekor/README.md similarity index 100% rename from 16_modern_security/16_transparency_logs_rekor/README.md rename to modules/16_modern_security/16_transparency_logs_rekor/README.md diff --git a/16_modern_security/16_transparency_logs_rekor/examples/example_basic.py b/modules/16_modern_security/16_transparency_logs_rekor/examples/example_basic.py similarity index 100% rename from 16_modern_security/16_transparency_logs_rekor/examples/example_basic.py rename to modules/16_modern_security/16_transparency_logs_rekor/examples/example_basic.py diff --git a/16_modern_security/16_transparency_logs_rekor/exercise/exercise_01.py b/modules/16_modern_security/16_transparency_logs_rekor/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/16_transparency_logs_rekor/exercise/exercise_01.py rename to modules/16_modern_security/16_transparency_logs_rekor/exercise/exercise_01.py diff --git a/16_modern_security/16_transparency_logs_rekor/references/links.md b/modules/16_modern_security/16_transparency_logs_rekor/references/links.md similarity index 100% rename from 16_modern_security/16_transparency_logs_rekor/references/links.md rename to modules/16_modern_security/16_transparency_logs_rekor/references/links.md diff --git a/16_modern_security/16_transparency_logs_rekor/tests/test_basic.py b/modules/16_modern_security/16_transparency_logs_rekor/tests/test_basic.py similarity index 100% rename from 16_modern_security/16_transparency_logs_rekor/tests/test_basic.py rename to modules/16_modern_security/16_transparency_logs_rekor/tests/test_basic.py diff --git a/16_modern_security/17_vulnerability_scanning_safety/README.md b/modules/16_modern_security/17_vulnerability_scanning_safety/README.md similarity index 100% rename from 16_modern_security/17_vulnerability_scanning_safety/README.md rename to modules/16_modern_security/17_vulnerability_scanning_safety/README.md diff --git a/16_modern_security/17_vulnerability_scanning_safety/examples/example_basic.py b/modules/16_modern_security/17_vulnerability_scanning_safety/examples/example_basic.py similarity index 100% rename from 16_modern_security/17_vulnerability_scanning_safety/examples/example_basic.py rename to modules/16_modern_security/17_vulnerability_scanning_safety/examples/example_basic.py diff --git a/16_modern_security/17_vulnerability_scanning_safety/exercise/exercise_01.py b/modules/16_modern_security/17_vulnerability_scanning_safety/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/17_vulnerability_scanning_safety/exercise/exercise_01.py rename to modules/16_modern_security/17_vulnerability_scanning_safety/exercise/exercise_01.py diff --git a/16_modern_security/17_vulnerability_scanning_safety/references/links.md b/modules/16_modern_security/17_vulnerability_scanning_safety/references/links.md similarity index 100% rename from 16_modern_security/17_vulnerability_scanning_safety/references/links.md rename to modules/16_modern_security/17_vulnerability_scanning_safety/references/links.md diff --git a/16_modern_security/17_vulnerability_scanning_safety/tests/test_basic.py b/modules/16_modern_security/17_vulnerability_scanning_safety/tests/test_basic.py similarity index 100% rename from 16_modern_security/17_vulnerability_scanning_safety/tests/test_basic.py rename to modules/16_modern_security/17_vulnerability_scanning_safety/tests/test_basic.py diff --git a/16_modern_security/18_trivy_containers/README.md b/modules/16_modern_security/18_trivy_containers/README.md similarity index 100% rename from 16_modern_security/18_trivy_containers/README.md rename to modules/16_modern_security/18_trivy_containers/README.md diff --git a/16_modern_security/18_trivy_containers/examples/example_basic.py b/modules/16_modern_security/18_trivy_containers/examples/example_basic.py similarity index 100% rename from 16_modern_security/18_trivy_containers/examples/example_basic.py rename to modules/16_modern_security/18_trivy_containers/examples/example_basic.py diff --git a/16_modern_security/18_trivy_containers/exercise/exercise_01.py b/modules/16_modern_security/18_trivy_containers/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/18_trivy_containers/exercise/exercise_01.py rename to modules/16_modern_security/18_trivy_containers/exercise/exercise_01.py diff --git a/16_modern_security/18_trivy_containers/references/links.md b/modules/16_modern_security/18_trivy_containers/references/links.md similarity index 100% rename from 16_modern_security/18_trivy_containers/references/links.md rename to modules/16_modern_security/18_trivy_containers/references/links.md diff --git a/16_modern_security/18_trivy_containers/tests/test_basic.py b/modules/16_modern_security/18_trivy_containers/tests/test_basic.py similarity index 100% rename from 16_modern_security/18_trivy_containers/tests/test_basic.py rename to modules/16_modern_security/18_trivy_containers/tests/test_basic.py diff --git a/16_modern_security/19_grype_scanning/README.md b/modules/16_modern_security/19_grype_scanning/README.md similarity index 100% rename from 16_modern_security/19_grype_scanning/README.md rename to modules/16_modern_security/19_grype_scanning/README.md diff --git a/16_modern_security/19_grype_scanning/examples/example_basic.py b/modules/16_modern_security/19_grype_scanning/examples/example_basic.py similarity index 100% rename from 16_modern_security/19_grype_scanning/examples/example_basic.py rename to modules/16_modern_security/19_grype_scanning/examples/example_basic.py diff --git a/16_modern_security/19_grype_scanning/exercise/exercise_01.py b/modules/16_modern_security/19_grype_scanning/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/19_grype_scanning/exercise/exercise_01.py rename to modules/16_modern_security/19_grype_scanning/exercise/exercise_01.py diff --git a/16_modern_security/19_grype_scanning/references/links.md b/modules/16_modern_security/19_grype_scanning/references/links.md similarity index 100% rename from 16_modern_security/19_grype_scanning/references/links.md rename to modules/16_modern_security/19_grype_scanning/references/links.md diff --git a/16_modern_security/19_grype_scanning/tests/test_basic.py b/modules/16_modern_security/19_grype_scanning/tests/test_basic.py similarity index 100% rename from 16_modern_security/19_grype_scanning/tests/test_basic.py rename to modules/16_modern_security/19_grype_scanning/tests/test_basic.py diff --git a/16_modern_security/20_dependabot_github/README.md b/modules/16_modern_security/20_dependabot_github/README.md similarity index 100% rename from 16_modern_security/20_dependabot_github/README.md rename to modules/16_modern_security/20_dependabot_github/README.md diff --git a/16_modern_security/20_dependabot_github/examples/example_basic.py b/modules/16_modern_security/20_dependabot_github/examples/example_basic.py similarity index 100% rename from 16_modern_security/20_dependabot_github/examples/example_basic.py rename to modules/16_modern_security/20_dependabot_github/examples/example_basic.py diff --git a/16_modern_security/20_dependabot_github/exercise/exercise_01.py b/modules/16_modern_security/20_dependabot_github/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/20_dependabot_github/exercise/exercise_01.py rename to modules/16_modern_security/20_dependabot_github/exercise/exercise_01.py diff --git a/16_modern_security/20_dependabot_github/references/links.md b/modules/16_modern_security/20_dependabot_github/references/links.md similarity index 100% rename from 16_modern_security/20_dependabot_github/references/links.md rename to modules/16_modern_security/20_dependabot_github/references/links.md diff --git a/16_modern_security/20_dependabot_github/tests/test_basic.py b/modules/16_modern_security/20_dependabot_github/tests/test_basic.py similarity index 100% rename from 16_modern_security/20_dependabot_github/tests/test_basic.py rename to modules/16_modern_security/20_dependabot_github/tests/test_basic.py diff --git a/16_modern_security/21_automated_patching/README.md b/modules/16_modern_security/21_automated_patching/README.md similarity index 100% rename from 16_modern_security/21_automated_patching/README.md rename to modules/16_modern_security/21_automated_patching/README.md diff --git a/16_modern_security/21_automated_patching/examples/example_basic.py b/modules/16_modern_security/21_automated_patching/examples/example_basic.py similarity index 100% rename from 16_modern_security/21_automated_patching/examples/example_basic.py rename to modules/16_modern_security/21_automated_patching/examples/example_basic.py diff --git a/16_modern_security/21_automated_patching/exercise/exercise_01.py b/modules/16_modern_security/21_automated_patching/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/21_automated_patching/exercise/exercise_01.py rename to modules/16_modern_security/21_automated_patching/exercise/exercise_01.py diff --git a/16_modern_security/21_automated_patching/references/links.md b/modules/16_modern_security/21_automated_patching/references/links.md similarity index 100% rename from 16_modern_security/21_automated_patching/references/links.md rename to modules/16_modern_security/21_automated_patching/references/links.md diff --git a/16_modern_security/21_automated_patching/tests/test_basic.py b/modules/16_modern_security/21_automated_patching/tests/test_basic.py similarity index 100% rename from 16_modern_security/21_automated_patching/tests/test_basic.py rename to modules/16_modern_security/21_automated_patching/tests/test_basic.py diff --git a/16_modern_security/22_secrets_management_intro/README.md b/modules/16_modern_security/22_secrets_management_intro/README.md similarity index 100% rename from 16_modern_security/22_secrets_management_intro/README.md rename to modules/16_modern_security/22_secrets_management_intro/README.md diff --git a/16_modern_security/22_secrets_management_intro/examples/example_basic.py b/modules/16_modern_security/22_secrets_management_intro/examples/example_basic.py similarity index 100% rename from 16_modern_security/22_secrets_management_intro/examples/example_basic.py rename to modules/16_modern_security/22_secrets_management_intro/examples/example_basic.py diff --git a/16_modern_security/22_secrets_management_intro/exercise/exercise_01.py b/modules/16_modern_security/22_secrets_management_intro/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/22_secrets_management_intro/exercise/exercise_01.py rename to modules/16_modern_security/22_secrets_management_intro/exercise/exercise_01.py diff --git a/16_modern_security/22_secrets_management_intro/references/links.md b/modules/16_modern_security/22_secrets_management_intro/references/links.md similarity index 100% rename from 16_modern_security/22_secrets_management_intro/references/links.md rename to modules/16_modern_security/22_secrets_management_intro/references/links.md diff --git a/16_modern_security/22_secrets_management_intro/tests/test_basic.py b/modules/16_modern_security/22_secrets_management_intro/tests/test_basic.py similarity index 100% rename from 16_modern_security/22_secrets_management_intro/tests/test_basic.py rename to modules/16_modern_security/22_secrets_management_intro/tests/test_basic.py diff --git a/16_modern_security/23_environment_variables/README.md b/modules/16_modern_security/23_environment_variables/README.md similarity index 100% rename from 16_modern_security/23_environment_variables/README.md rename to modules/16_modern_security/23_environment_variables/README.md diff --git a/16_modern_security/23_environment_variables/examples/example_basic.py b/modules/16_modern_security/23_environment_variables/examples/example_basic.py similarity index 100% rename from 16_modern_security/23_environment_variables/examples/example_basic.py rename to modules/16_modern_security/23_environment_variables/examples/example_basic.py diff --git a/16_modern_security/23_environment_variables/exercise/exercise_01.py b/modules/16_modern_security/23_environment_variables/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/23_environment_variables/exercise/exercise_01.py rename to modules/16_modern_security/23_environment_variables/exercise/exercise_01.py diff --git a/16_modern_security/23_environment_variables/references/links.md b/modules/16_modern_security/23_environment_variables/references/links.md similarity index 100% rename from 16_modern_security/23_environment_variables/references/links.md rename to modules/16_modern_security/23_environment_variables/references/links.md diff --git a/16_modern_security/23_environment_variables/tests/test_basic.py b/modules/16_modern_security/23_environment_variables/tests/test_basic.py similarity index 100% rename from 16_modern_security/23_environment_variables/tests/test_basic.py rename to modules/16_modern_security/23_environment_variables/tests/test_basic.py diff --git a/16_modern_security/24_secrets_ci_cd/README.md b/modules/16_modern_security/24_secrets_ci_cd/README.md similarity index 100% rename from 16_modern_security/24_secrets_ci_cd/README.md rename to modules/16_modern_security/24_secrets_ci_cd/README.md diff --git a/16_modern_security/24_secrets_ci_cd/examples/example_basic.py b/modules/16_modern_security/24_secrets_ci_cd/examples/example_basic.py similarity index 100% rename from 16_modern_security/24_secrets_ci_cd/examples/example_basic.py rename to modules/16_modern_security/24_secrets_ci_cd/examples/example_basic.py diff --git a/16_modern_security/24_secrets_ci_cd/exercise/exercise_01.py b/modules/16_modern_security/24_secrets_ci_cd/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/24_secrets_ci_cd/exercise/exercise_01.py rename to modules/16_modern_security/24_secrets_ci_cd/exercise/exercise_01.py diff --git a/16_modern_security/24_secrets_ci_cd/references/links.md b/modules/16_modern_security/24_secrets_ci_cd/references/links.md similarity index 100% rename from 16_modern_security/24_secrets_ci_cd/references/links.md rename to modules/16_modern_security/24_secrets_ci_cd/references/links.md diff --git a/16_modern_security/24_secrets_ci_cd/tests/test_basic.py b/modules/16_modern_security/24_secrets_ci_cd/tests/test_basic.py similarity index 100% rename from 16_modern_security/24_secrets_ci_cd/tests/test_basic.py rename to modules/16_modern_security/24_secrets_ci_cd/tests/test_basic.py diff --git a/16_modern_security/25_sops_introduction/README.md b/modules/16_modern_security/25_sops_introduction/README.md similarity index 100% rename from 16_modern_security/25_sops_introduction/README.md rename to modules/16_modern_security/25_sops_introduction/README.md diff --git a/16_modern_security/25_sops_introduction/examples/example_basic.py b/modules/16_modern_security/25_sops_introduction/examples/example_basic.py similarity index 100% rename from 16_modern_security/25_sops_introduction/examples/example_basic.py rename to modules/16_modern_security/25_sops_introduction/examples/example_basic.py diff --git a/16_modern_security/25_sops_introduction/exercise/exercise_01.py b/modules/16_modern_security/25_sops_introduction/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/25_sops_introduction/exercise/exercise_01.py rename to modules/16_modern_security/25_sops_introduction/exercise/exercise_01.py diff --git a/16_modern_security/25_sops_introduction/references/links.md b/modules/16_modern_security/25_sops_introduction/references/links.md similarity index 100% rename from 16_modern_security/25_sops_introduction/references/links.md rename to modules/16_modern_security/25_sops_introduction/references/links.md diff --git a/16_modern_security/25_sops_introduction/tests/test_basic.py b/modules/16_modern_security/25_sops_introduction/tests/test_basic.py similarity index 100% rename from 16_modern_security/25_sops_introduction/tests/test_basic.py rename to modules/16_modern_security/25_sops_introduction/tests/test_basic.py diff --git a/16_modern_security/26_sops_backends_age_kms/README.md b/modules/16_modern_security/26_sops_backends_age_kms/README.md similarity index 100% rename from 16_modern_security/26_sops_backends_age_kms/README.md rename to modules/16_modern_security/26_sops_backends_age_kms/README.md diff --git a/16_modern_security/26_sops_backends_age_kms/examples/example_basic.py b/modules/16_modern_security/26_sops_backends_age_kms/examples/example_basic.py similarity index 100% rename from 16_modern_security/26_sops_backends_age_kms/examples/example_basic.py rename to modules/16_modern_security/26_sops_backends_age_kms/examples/example_basic.py diff --git a/16_modern_security/26_sops_backends_age_kms/exercise/exercise_01.py b/modules/16_modern_security/26_sops_backends_age_kms/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/26_sops_backends_age_kms/exercise/exercise_01.py rename to modules/16_modern_security/26_sops_backends_age_kms/exercise/exercise_01.py diff --git a/16_modern_security/26_sops_backends_age_kms/references/links.md b/modules/16_modern_security/26_sops_backends_age_kms/references/links.md similarity index 100% rename from 16_modern_security/26_sops_backends_age_kms/references/links.md rename to modules/16_modern_security/26_sops_backends_age_kms/references/links.md diff --git a/16_modern_security/26_sops_backends_age_kms/tests/test_basic.py b/modules/16_modern_security/26_sops_backends_age_kms/tests/test_basic.py similarity index 100% rename from 16_modern_security/26_sops_backends_age_kms/tests/test_basic.py rename to modules/16_modern_security/26_sops_backends_age_kms/tests/test_basic.py diff --git a/16_modern_security/27_sops_yaml_json/README.md b/modules/16_modern_security/27_sops_yaml_json/README.md similarity index 100% rename from 16_modern_security/27_sops_yaml_json/README.md rename to modules/16_modern_security/27_sops_yaml_json/README.md diff --git a/16_modern_security/27_sops_yaml_json/examples/example_basic.py b/modules/16_modern_security/27_sops_yaml_json/examples/example_basic.py similarity index 100% rename from 16_modern_security/27_sops_yaml_json/examples/example_basic.py rename to modules/16_modern_security/27_sops_yaml_json/examples/example_basic.py diff --git a/16_modern_security/27_sops_yaml_json/exercise/exercise_01.py b/modules/16_modern_security/27_sops_yaml_json/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/27_sops_yaml_json/exercise/exercise_01.py rename to modules/16_modern_security/27_sops_yaml_json/exercise/exercise_01.py diff --git a/16_modern_security/27_sops_yaml_json/references/links.md b/modules/16_modern_security/27_sops_yaml_json/references/links.md similarity index 100% rename from 16_modern_security/27_sops_yaml_json/references/links.md rename to modules/16_modern_security/27_sops_yaml_json/references/links.md diff --git a/16_modern_security/27_sops_yaml_json/tests/test_basic.py b/modules/16_modern_security/27_sops_yaml_json/tests/test_basic.py similarity index 100% rename from 16_modern_security/27_sops_yaml_json/tests/test_basic.py rename to modules/16_modern_security/27_sops_yaml_json/tests/test_basic.py diff --git a/16_modern_security/28_sops_git_integration/README.md b/modules/16_modern_security/28_sops_git_integration/README.md similarity index 100% rename from 16_modern_security/28_sops_git_integration/README.md rename to modules/16_modern_security/28_sops_git_integration/README.md diff --git a/16_modern_security/28_sops_git_integration/examples/example_basic.py b/modules/16_modern_security/28_sops_git_integration/examples/example_basic.py similarity index 100% rename from 16_modern_security/28_sops_git_integration/examples/example_basic.py rename to modules/16_modern_security/28_sops_git_integration/examples/example_basic.py diff --git a/16_modern_security/28_sops_git_integration/exercise/exercise_01.py b/modules/16_modern_security/28_sops_git_integration/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/28_sops_git_integration/exercise/exercise_01.py rename to modules/16_modern_security/28_sops_git_integration/exercise/exercise_01.py diff --git a/16_modern_security/28_sops_git_integration/references/links.md b/modules/16_modern_security/28_sops_git_integration/references/links.md similarity index 100% rename from 16_modern_security/28_sops_git_integration/references/links.md rename to modules/16_modern_security/28_sops_git_integration/references/links.md diff --git a/16_modern_security/28_sops_git_integration/tests/test_basic.py b/modules/16_modern_security/28_sops_git_integration/tests/test_basic.py similarity index 100% rename from 16_modern_security/28_sops_git_integration/tests/test_basic.py rename to modules/16_modern_security/28_sops_git_integration/tests/test_basic.py diff --git a/16_modern_security/29_key_rotation_sops/README.md b/modules/16_modern_security/29_key_rotation_sops/README.md similarity index 100% rename from 16_modern_security/29_key_rotation_sops/README.md rename to modules/16_modern_security/29_key_rotation_sops/README.md diff --git a/16_modern_security/29_key_rotation_sops/examples/example_basic.py b/modules/16_modern_security/29_key_rotation_sops/examples/example_basic.py similarity index 100% rename from 16_modern_security/29_key_rotation_sops/examples/example_basic.py rename to modules/16_modern_security/29_key_rotation_sops/examples/example_basic.py diff --git a/16_modern_security/29_key_rotation_sops/exercise/exercise_01.py b/modules/16_modern_security/29_key_rotation_sops/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/29_key_rotation_sops/exercise/exercise_01.py rename to modules/16_modern_security/29_key_rotation_sops/exercise/exercise_01.py diff --git a/16_modern_security/29_key_rotation_sops/references/links.md b/modules/16_modern_security/29_key_rotation_sops/references/links.md similarity index 100% rename from 16_modern_security/29_key_rotation_sops/references/links.md rename to modules/16_modern_security/29_key_rotation_sops/references/links.md diff --git a/16_modern_security/29_key_rotation_sops/tests/test_basic.py b/modules/16_modern_security/29_key_rotation_sops/tests/test_basic.py similarity index 100% rename from 16_modern_security/29_key_rotation_sops/tests/test_basic.py rename to modules/16_modern_security/29_key_rotation_sops/tests/test_basic.py diff --git a/16_modern_security/30_vault_architecture/README.md b/modules/16_modern_security/30_vault_architecture/README.md similarity index 100% rename from 16_modern_security/30_vault_architecture/README.md rename to modules/16_modern_security/30_vault_architecture/README.md diff --git a/16_modern_security/30_vault_architecture/examples/example_basic.py b/modules/16_modern_security/30_vault_architecture/examples/example_basic.py similarity index 100% rename from 16_modern_security/30_vault_architecture/examples/example_basic.py rename to modules/16_modern_security/30_vault_architecture/examples/example_basic.py diff --git a/16_modern_security/30_vault_architecture/exercise/exercise_01.py b/modules/16_modern_security/30_vault_architecture/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/30_vault_architecture/exercise/exercise_01.py rename to modules/16_modern_security/30_vault_architecture/exercise/exercise_01.py diff --git a/16_modern_security/30_vault_architecture/references/links.md b/modules/16_modern_security/30_vault_architecture/references/links.md similarity index 100% rename from 16_modern_security/30_vault_architecture/references/links.md rename to modules/16_modern_security/30_vault_architecture/references/links.md diff --git a/16_modern_security/30_vault_architecture/tests/test_basic.py b/modules/16_modern_security/30_vault_architecture/tests/test_basic.py similarity index 100% rename from 16_modern_security/30_vault_architecture/tests/test_basic.py rename to modules/16_modern_security/30_vault_architecture/tests/test_basic.py diff --git a/16_modern_security/31_dynamic_secrets_vault/README.md b/modules/16_modern_security/31_dynamic_secrets_vault/README.md similarity index 100% rename from 16_modern_security/31_dynamic_secrets_vault/README.md rename to modules/16_modern_security/31_dynamic_secrets_vault/README.md diff --git a/16_modern_security/31_dynamic_secrets_vault/examples/example_basic.py b/modules/16_modern_security/31_dynamic_secrets_vault/examples/example_basic.py similarity index 100% rename from 16_modern_security/31_dynamic_secrets_vault/examples/example_basic.py rename to modules/16_modern_security/31_dynamic_secrets_vault/examples/example_basic.py diff --git a/16_modern_security/31_dynamic_secrets_vault/exercise/exercise_01.py b/modules/16_modern_security/31_dynamic_secrets_vault/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/31_dynamic_secrets_vault/exercise/exercise_01.py rename to modules/16_modern_security/31_dynamic_secrets_vault/exercise/exercise_01.py diff --git a/16_modern_security/31_dynamic_secrets_vault/references/links.md b/modules/16_modern_security/31_dynamic_secrets_vault/references/links.md similarity index 100% rename from 16_modern_security/31_dynamic_secrets_vault/references/links.md rename to modules/16_modern_security/31_dynamic_secrets_vault/references/links.md diff --git a/16_modern_security/31_dynamic_secrets_vault/tests/test_basic.py b/modules/16_modern_security/31_dynamic_secrets_vault/tests/test_basic.py similarity index 100% rename from 16_modern_security/31_dynamic_secrets_vault/tests/test_basic.py rename to modules/16_modern_security/31_dynamic_secrets_vault/tests/test_basic.py diff --git a/16_modern_security/32_vault_agents/README.md b/modules/16_modern_security/32_vault_agents/README.md similarity index 100% rename from 16_modern_security/32_vault_agents/README.md rename to modules/16_modern_security/32_vault_agents/README.md diff --git a/16_modern_security/32_vault_agents/examples/example_basic.py b/modules/16_modern_security/32_vault_agents/examples/example_basic.py similarity index 100% rename from 16_modern_security/32_vault_agents/examples/example_basic.py rename to modules/16_modern_security/32_vault_agents/examples/example_basic.py diff --git a/16_modern_security/32_vault_agents/exercise/exercise_01.py b/modules/16_modern_security/32_vault_agents/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/32_vault_agents/exercise/exercise_01.py rename to modules/16_modern_security/32_vault_agents/exercise/exercise_01.py diff --git a/16_modern_security/32_vault_agents/references/links.md b/modules/16_modern_security/32_vault_agents/references/links.md similarity index 100% rename from 16_modern_security/32_vault_agents/references/links.md rename to modules/16_modern_security/32_vault_agents/references/links.md diff --git a/16_modern_security/32_vault_agents/tests/test_basic.py b/modules/16_modern_security/32_vault_agents/tests/test_basic.py similarity index 100% rename from 16_modern_security/32_vault_agents/tests/test_basic.py rename to modules/16_modern_security/32_vault_agents/tests/test_basic.py diff --git a/16_modern_security/33_vault_python_hvac/README.md b/modules/16_modern_security/33_vault_python_hvac/README.md similarity index 100% rename from 16_modern_security/33_vault_python_hvac/README.md rename to modules/16_modern_security/33_vault_python_hvac/README.md diff --git a/16_modern_security/33_vault_python_hvac/examples/example_basic.py b/modules/16_modern_security/33_vault_python_hvac/examples/example_basic.py similarity index 100% rename from 16_modern_security/33_vault_python_hvac/examples/example_basic.py rename to modules/16_modern_security/33_vault_python_hvac/examples/example_basic.py diff --git a/16_modern_security/33_vault_python_hvac/exercise/exercise_01.py b/modules/16_modern_security/33_vault_python_hvac/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/33_vault_python_hvac/exercise/exercise_01.py rename to modules/16_modern_security/33_vault_python_hvac/exercise/exercise_01.py diff --git a/16_modern_security/33_vault_python_hvac/references/links.md b/modules/16_modern_security/33_vault_python_hvac/references/links.md similarity index 100% rename from 16_modern_security/33_vault_python_hvac/references/links.md rename to modules/16_modern_security/33_vault_python_hvac/references/links.md diff --git a/16_modern_security/33_vault_python_hvac/tests/test_basic.py b/modules/16_modern_security/33_vault_python_hvac/tests/test_basic.py similarity index 100% rename from 16_modern_security/33_vault_python_hvac/tests/test_basic.py rename to modules/16_modern_security/33_vault_python_hvac/tests/test_basic.py diff --git a/16_modern_security/34_vault_kubernetes/README.md b/modules/16_modern_security/34_vault_kubernetes/README.md similarity index 100% rename from 16_modern_security/34_vault_kubernetes/README.md rename to modules/16_modern_security/34_vault_kubernetes/README.md diff --git a/16_modern_security/34_vault_kubernetes/examples/example_basic.py b/modules/16_modern_security/34_vault_kubernetes/examples/example_basic.py similarity index 100% rename from 16_modern_security/34_vault_kubernetes/examples/example_basic.py rename to modules/16_modern_security/34_vault_kubernetes/examples/example_basic.py diff --git a/16_modern_security/34_vault_kubernetes/exercise/exercise_01.py b/modules/16_modern_security/34_vault_kubernetes/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/34_vault_kubernetes/exercise/exercise_01.py rename to modules/16_modern_security/34_vault_kubernetes/exercise/exercise_01.py diff --git a/16_modern_security/34_vault_kubernetes/references/links.md b/modules/16_modern_security/34_vault_kubernetes/references/links.md similarity index 100% rename from 16_modern_security/34_vault_kubernetes/references/links.md rename to modules/16_modern_security/34_vault_kubernetes/references/links.md diff --git a/16_modern_security/34_vault_kubernetes/tests/test_basic.py b/modules/16_modern_security/34_vault_kubernetes/tests/test_basic.py similarity index 100% rename from 16_modern_security/34_vault_kubernetes/tests/test_basic.py rename to modules/16_modern_security/34_vault_kubernetes/tests/test_basic.py diff --git a/16_modern_security/35_kubernetes_secrets/README.md b/modules/16_modern_security/35_kubernetes_secrets/README.md similarity index 100% rename from 16_modern_security/35_kubernetes_secrets/README.md rename to modules/16_modern_security/35_kubernetes_secrets/README.md diff --git a/16_modern_security/35_kubernetes_secrets/examples/example_basic.py b/modules/16_modern_security/35_kubernetes_secrets/examples/example_basic.py similarity index 100% rename from 16_modern_security/35_kubernetes_secrets/examples/example_basic.py rename to modules/16_modern_security/35_kubernetes_secrets/examples/example_basic.py diff --git a/16_modern_security/35_kubernetes_secrets/exercise/exercise_01.py b/modules/16_modern_security/35_kubernetes_secrets/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/35_kubernetes_secrets/exercise/exercise_01.py rename to modules/16_modern_security/35_kubernetes_secrets/exercise/exercise_01.py diff --git a/16_modern_security/35_kubernetes_secrets/references/links.md b/modules/16_modern_security/35_kubernetes_secrets/references/links.md similarity index 100% rename from 16_modern_security/35_kubernetes_secrets/references/links.md rename to modules/16_modern_security/35_kubernetes_secrets/references/links.md diff --git a/16_modern_security/35_kubernetes_secrets/tests/test_basic.py b/modules/16_modern_security/35_kubernetes_secrets/tests/test_basic.py similarity index 100% rename from 16_modern_security/35_kubernetes_secrets/tests/test_basic.py rename to modules/16_modern_security/35_kubernetes_secrets/tests/test_basic.py diff --git a/16_modern_security/36_external_secrets_operator/README.md b/modules/16_modern_security/36_external_secrets_operator/README.md similarity index 100% rename from 16_modern_security/36_external_secrets_operator/README.md rename to modules/16_modern_security/36_external_secrets_operator/README.md diff --git a/16_modern_security/36_external_secrets_operator/examples/example_basic.py b/modules/16_modern_security/36_external_secrets_operator/examples/example_basic.py similarity index 100% rename from 16_modern_security/36_external_secrets_operator/examples/example_basic.py rename to modules/16_modern_security/36_external_secrets_operator/examples/example_basic.py diff --git a/16_modern_security/36_external_secrets_operator/exercise/exercise_01.py b/modules/16_modern_security/36_external_secrets_operator/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/36_external_secrets_operator/exercise/exercise_01.py rename to modules/16_modern_security/36_external_secrets_operator/exercise/exercise_01.py diff --git a/16_modern_security/36_external_secrets_operator/references/links.md b/modules/16_modern_security/36_external_secrets_operator/references/links.md similarity index 100% rename from 16_modern_security/36_external_secrets_operator/references/links.md rename to modules/16_modern_security/36_external_secrets_operator/references/links.md diff --git a/16_modern_security/36_external_secrets_operator/tests/test_basic.py b/modules/16_modern_security/36_external_secrets_operator/tests/test_basic.py similarity index 100% rename from 16_modern_security/36_external_secrets_operator/tests/test_basic.py rename to modules/16_modern_security/36_external_secrets_operator/tests/test_basic.py diff --git a/16_modern_security/37_sealed_secrets/README.md b/modules/16_modern_security/37_sealed_secrets/README.md similarity index 100% rename from 16_modern_security/37_sealed_secrets/README.md rename to modules/16_modern_security/37_sealed_secrets/README.md diff --git a/16_modern_security/37_sealed_secrets/examples/example_basic.py b/modules/16_modern_security/37_sealed_secrets/examples/example_basic.py similarity index 100% rename from 16_modern_security/37_sealed_secrets/examples/example_basic.py rename to modules/16_modern_security/37_sealed_secrets/examples/example_basic.py diff --git a/16_modern_security/37_sealed_secrets/exercise/exercise_01.py b/modules/16_modern_security/37_sealed_secrets/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/37_sealed_secrets/exercise/exercise_01.py rename to modules/16_modern_security/37_sealed_secrets/exercise/exercise_01.py diff --git a/16_modern_security/37_sealed_secrets/references/links.md b/modules/16_modern_security/37_sealed_secrets/references/links.md similarity index 100% rename from 16_modern_security/37_sealed_secrets/references/links.md rename to modules/16_modern_security/37_sealed_secrets/references/links.md diff --git a/16_modern_security/37_sealed_secrets/tests/test_basic.py b/modules/16_modern_security/37_sealed_secrets/tests/test_basic.py similarity index 100% rename from 16_modern_security/37_sealed_secrets/tests/test_basic.py rename to modules/16_modern_security/37_sealed_secrets/tests/test_basic.py diff --git a/16_modern_security/38_input_validation/README.md b/modules/16_modern_security/38_input_validation/README.md similarity index 100% rename from 16_modern_security/38_input_validation/README.md rename to modules/16_modern_security/38_input_validation/README.md diff --git a/16_modern_security/38_input_validation/examples/example_basic.py b/modules/16_modern_security/38_input_validation/examples/example_basic.py similarity index 100% rename from 16_modern_security/38_input_validation/examples/example_basic.py rename to modules/16_modern_security/38_input_validation/examples/example_basic.py diff --git a/16_modern_security/38_input_validation/exercise/exercise_01.py b/modules/16_modern_security/38_input_validation/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/38_input_validation/exercise/exercise_01.py rename to modules/16_modern_security/38_input_validation/exercise/exercise_01.py diff --git a/16_modern_security/38_input_validation/references/links.md b/modules/16_modern_security/38_input_validation/references/links.md similarity index 100% rename from 16_modern_security/38_input_validation/references/links.md rename to modules/16_modern_security/38_input_validation/references/links.md diff --git a/16_modern_security/38_input_validation/tests/test_basic.py b/modules/16_modern_security/38_input_validation/tests/test_basic.py similarity index 100% rename from 16_modern_security/38_input_validation/tests/test_basic.py rename to modules/16_modern_security/38_input_validation/tests/test_basic.py diff --git a/16_modern_security/39_sql_injection_prevention/README.md b/modules/16_modern_security/39_sql_injection_prevention/README.md similarity index 100% rename from 16_modern_security/39_sql_injection_prevention/README.md rename to modules/16_modern_security/39_sql_injection_prevention/README.md diff --git a/16_modern_security/39_sql_injection_prevention/examples/example_basic.py b/modules/16_modern_security/39_sql_injection_prevention/examples/example_basic.py similarity index 100% rename from 16_modern_security/39_sql_injection_prevention/examples/example_basic.py rename to modules/16_modern_security/39_sql_injection_prevention/examples/example_basic.py diff --git a/16_modern_security/39_sql_injection_prevention/exercise/exercise_01.py b/modules/16_modern_security/39_sql_injection_prevention/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/39_sql_injection_prevention/exercise/exercise_01.py rename to modules/16_modern_security/39_sql_injection_prevention/exercise/exercise_01.py diff --git a/16_modern_security/39_sql_injection_prevention/references/links.md b/modules/16_modern_security/39_sql_injection_prevention/references/links.md similarity index 100% rename from 16_modern_security/39_sql_injection_prevention/references/links.md rename to modules/16_modern_security/39_sql_injection_prevention/references/links.md diff --git a/16_modern_security/39_sql_injection_prevention/tests/test_basic.py b/modules/16_modern_security/39_sql_injection_prevention/tests/test_basic.py similarity index 100% rename from 16_modern_security/39_sql_injection_prevention/tests/test_basic.py rename to modules/16_modern_security/39_sql_injection_prevention/tests/test_basic.py diff --git a/16_modern_security/40_xss_csrf_prevention/README.md b/modules/16_modern_security/40_xss_csrf_prevention/README.md similarity index 100% rename from 16_modern_security/40_xss_csrf_prevention/README.md rename to modules/16_modern_security/40_xss_csrf_prevention/README.md diff --git a/16_modern_security/40_xss_csrf_prevention/examples/example_basic.py b/modules/16_modern_security/40_xss_csrf_prevention/examples/example_basic.py similarity index 100% rename from 16_modern_security/40_xss_csrf_prevention/examples/example_basic.py rename to modules/16_modern_security/40_xss_csrf_prevention/examples/example_basic.py diff --git a/16_modern_security/40_xss_csrf_prevention/exercise/exercise_01.py b/modules/16_modern_security/40_xss_csrf_prevention/exercise/exercise_01.py similarity index 100% rename from 16_modern_security/40_xss_csrf_prevention/exercise/exercise_01.py rename to modules/16_modern_security/40_xss_csrf_prevention/exercise/exercise_01.py diff --git a/16_modern_security/40_xss_csrf_prevention/references/links.md b/modules/16_modern_security/40_xss_csrf_prevention/references/links.md similarity index 100% rename from 16_modern_security/40_xss_csrf_prevention/references/links.md rename to modules/16_modern_security/40_xss_csrf_prevention/references/links.md diff --git a/16_modern_security/40_xss_csrf_prevention/tests/test_basic.py b/modules/16_modern_security/40_xss_csrf_prevention/tests/test_basic.py similarity index 100% rename from 16_modern_security/40_xss_csrf_prevention/tests/test_basic.py rename to modules/16_modern_security/40_xss_csrf_prevention/tests/test_basic.py diff --git a/scripts/audit_nan_modules.py b/scripts/audit_nan_modules.py index 97a4fe3d..ed0e1472 100755 --- a/scripts/audit_nan_modules.py +++ b/scripts/audit_nan_modules.py @@ -76,8 +76,9 @@ class Hit: def iter_modules(repo_root: Path) -> list[Path]: + modules_root = repo_root / "modules" return sorted( - path for path in repo_root.iterdir() if path.is_dir() and re.match(r"^\d{2}_", path.name) + path for path in modules_root.iterdir() if path.is_dir() and re.match(r"^\d{2}_", path.name) ) diff --git a/scripts/generate_structure.py b/scripts/generate_structure.py index 16f69534..23335278 100644 --- a/scripts/generate_structure.py +++ b/scripts/generate_structure.py @@ -403,7 +403,7 @@ def create_module(base_path: Path, module_name: str, module_info: dict) -> None: def main() -> None: """Generate the complete project structure.""" - base_path = Path(__file__).parent.parent + base_path = Path(__file__).parent.parent / "modules" print("🚀 Generating module structure...") print() diff --git a/scripts/link_check.py b/scripts/link_check.py index 300e2e0c..edffa321 100755 --- a/scripts/link_check.py +++ b/scripts/link_check.py @@ -22,6 +22,7 @@ from pathlib import Path ROOT = Path(__file__).resolve().parent.parent +MODULES_ROOT = ROOT / "modules" URL_RE = re.compile(r"https://[^\s)\"']+") TIMEOUT = 8 @@ -63,7 +64,7 @@ def main() -> int: parser.add_argument("--workers", type=int, default=8) args = parser.parse_args() - scope = ROOT / args.topic if args.topic else ROOT + scope = MODULES_ROOT / args.topic if args.topic else MODULES_ROOT if not scope.exists(): print(f"scope not found: {scope}", file=sys.stderr) return 2 diff --git a/scripts/progress.py b/scripts/progress.py index 673cd93f..faf7a851 100755 --- a/scripts/progress.py +++ b/scripts/progress.py @@ -156,7 +156,7 @@ def main() -> None: base_path = Path(__file__).parent.parent print("🔍 Scanning modules and topics...") - progress = scan_modules(base_path) + progress = scan_modules(base_path / "modules") print("📝 Generating progress table...") progress_table = generate_progress_table(progress) diff --git a/scripts/run_topic_tests.py b/scripts/run_topic_tests.py index b3424809..ecb6fb4d 100755 --- a/scripts/run_topic_tests.py +++ b/scripts/run_topic_tests.py @@ -21,9 +21,13 @@ def discover_test_files() -> list[Path]: def resolve_target(target: str) -> list[Path]: - path = (REPO_ROOT / target).resolve() - if not path.exists(): + candidate = (REPO_ROOT / target).resolve() + if not candidate.exists(): + # Fallback: try under modules/ (post-refactor layout) + candidate = (REPO_ROOT / "modules" / target).resolve() + if not candidate.exists(): raise FileNotFoundError(f"Target not found: {target}") + path = candidate if path.is_file(): if path.name != "test_basic.py": diff --git a/scripts/validate_all_modules.py b/scripts/validate_all_modules.py index 255885a5..52bc2f29 100644 --- a/scripts/validate_all_modules.py +++ b/scripts/validate_all_modules.py @@ -100,8 +100,9 @@ def topic_counts(self) -> tuple[int, int]: def iter_modules(repo_root: Path, only_module: str | None) -> list[Path]: + modules_root = repo_root / "modules" all_modules = sorted( - p for p in repo_root.iterdir() if p.is_dir() and re.match(r"^\d{2}_", p.name) + p for p in modules_root.iterdir() if p.is_dir() and re.match(r"^\d{2}_", p.name) ) if only_module: return [m for m in all_modules if m.name == only_module] diff --git a/scripts/validate_nan_language.py b/scripts/validate_nan_language.py index 599f7f86..ccff72ed 100644 --- a/scripts/validate_nan_language.py +++ b/scripts/validate_nan_language.py @@ -50,7 +50,7 @@ def main() -> int: args = parser.parse_args() repo_root = Path(__file__).resolve().parents[1] - module_path = repo_root / args.module + module_path = repo_root / "modules" / args.module if not module_path.exists(): print(f"ERROR: module path not found: {module_path}")