Рассмотрим структуру папок исходников программы OutWiker, которая была получена на предыдущем шаге (Как получить исходники).
После получения исходников, будут созданы следующие папки:
Именно здесь содержатся все исходные тексты программы в виде python-пакетов (папок, содержащих файл __init__.py) и модулей (файлов с расширением *.py).
Находящиеся в папке src пакеты условно можно разделить на следующие группы (см. следующий рисунок):
Теперь подробнее рассмотрим пакеты движка программы.
К пакетам движка программы относятся пакеты (папки) core, pages, gui и libs (см. следующий рисунок).
Пакет core содержит основные модули, которые составляют "сердце" программы. Именно здесь содержатся все основные классы для работы с деревом заметок, настройками, поиском страниц, закладками и т.п. Именно модули из core в основном тестируются модульными тестами (кроме модуля commands.py). Здесь собраны модули, максимально абстрагированные от интерфейса программы.
Исключение составляет все тот же модуль commands.py, в котором собраны все повторяющиеся операции, в которых может быть задействован и интерфейс программы (стрелка от пакета gui). Этот модуль расположен в пакете core, а не gui, т.к. он активно используется в других частях программы.
Пакет gui содержит в себе модули с классами большинства элементов интерфейса программы (кроме классов представления страниц). Именно здесь расположены классы главного окна программы и всех диалогов.
Пакет pages содержит, в свою очередь, пакеты для различных типов страниц. В данный момент поддерживаются четыре типа страниц: вики-страницы (пакет wiki), HTML-страницы (пакет html), простые текстовые страницы (пакет text) и страницы поиска (пакет search).
Пакет libs предназначен для хранения небольших сторонних библиотек, в данный момент там располагается библиотека pyparsing, которая используется для разбора вики-нотации.