Challenge 2: Design a src/ Layout — Possible Solution ==================================================================== calculator/ ├── pyproject.toml ├── README.md ├── src/ │ └── calculator/ │ ├── __init__.py │ ├── basic.py │ └── advanced.py └── tests/ ├── test_basic.py └── test_advanced.py WHY THIS WORKS AS AN ANSWER ------------------------------ This reuses this chapter's own src/ layout tree exactly, keeping every element the original example established: pyproject.toml and README.md at the project root, an src/calculator/ folder holding the actual importable package code, and a separate top-level tests/ folder — the same "package code separate from tests and config" separation the chapter's warn-box-adjacent explanation calls out as the whole point of this layout. __init__.py is kept inside src/calculator/, reusing the chapter's own note that this file is specifically what makes the calculator folder importable as a real Python package at all — without it, basic.py and advanced.py would just be loose scripts, not part of an installable calculator package. basic.py and advanced.py are added as two separate modules inside the package folder, directly matching what the challenge specifies — splitting calculator's code into two files rather than one large file, the same module-based organization already covered back in Course 1, Chapter 9's own import/module coverage. test_basic.py and test_advanced.py mirror the two source modules one-to-one inside tests/, following the same test_*.py naming convention pytest auto-discovers (Course 2, Chapter 8) — one test file per module keeps it clear which tests exercise which piece of the package.