Во время написания кода я часто сталкиваюсь с проблемой решения тривиальных зависимостей. Например, давайте возьмем макет объекта памятки, который я недавно написал. Моя структура каталогов выглядит так:
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru.py
queue.py
README
Проблема конкретно с mru.py. mru.py содержит класс MRU, который использует очередь, определенную в queue.py. Очевидно, что очередь не является стратегией для мемоизатора, и нет смысла ставить ее под стратегии.
Одна из моих идей заключалась в том, чтобы настроить мой код так:
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru/
__init__.py
mru.py
queue.py
README
Проблема с этой настройкой заключается в том, что теперь пользователь должен знать, что mru находится в подпакете.
Другая идея состояла в том, чтобы расположить структуру следующим образом:
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru.py
dependencies/
__init__.py
queue.py
README
Это решило бы мою проблему, но интуитивно кажется неправильным способом сделать это.
Как правильно организовать мои файлы для учета этого несоответствия?