Глава 23 · Часть III · Создаём Python-проект
Планируем структуру Python-пакета
src-раскладка: пакет лежит в src/safesort/, а не в корне репозитория — и почему это осознанный выбор, а не догма.
SafeSort · Часть 3 из 6Проект
Хаотичная структура каталогов не мешает программе работать, но мешает её понимать, тестировать и устанавливать как пакет. Пока код не написан, зафиксируем только каркас — и добавим в него по одному файлу за раз, когда для него появится задача.
safesort/НОВОЕ
README.md
pyproject.tomlНОВОЕ
src/НОВОЕ
safesort/НОВОЕ
__init__.pyНОВОЕ
tests/НОВОЕ
Исходный код лежит внутри src/, а не прямо в корне
репозитория — это называют src-раскладкой (src layout). Без этого
уровня установленный пакет и каталог исходников совпадали бы, и было бы легко по ошибке
протестировать не тот код, что реально установлен — например, если забыть переустановить
пакет после правки файла.
src/safesort/
__init__.py
scanner.py
classifier.py
planner.py
executor.py
cli.py
duplicates.py
manifest.py
config.py
Коротко
- Пакет пока состоит только из README.md, pyproject.toml, src/safesort/__init__.py и tests/.
- src-раскладка кладёт исходный код в src/safesort/, а не в корень репозитория, — так тесты не могут случайно обратиться к неустановленному коду.
- Остальные модули появятся по одному, каждый — когда для него будет конкретная задача.