Структура папок проекта
Где расположены все части проекта?
Дерево
. ├── archive ├── db │ ├── backup_tsv │ ├── bold_definitions │ ├── epd │ ├── families │ ├── grammar │ ├── inflections │ ├── lookup │ ├── sanskrit │ ├── suttas │ └── variants ├── db_tests │ └── single ├── docs ├── exporter │ ├── apple_dictionary │ ├── deconstructor │ ├── goldendict │ ├── grammar_dict │ ├── kindle │ ├── kobo │ ├── mobile │ ├── pdf │ ├── share │ ├── sutta_central │ ├── tbw │ ├── tpr │ ├── variants │ ├── webapp │ └── wxt_extension ├── go_modules │ ├── deconstructor │ ├── dpdDb │ ├── frequency │ ├── tools ├── gui2 ├── newsletter ├── resources ├── scripts │ ├── add │ ├── bash │ ├── build │ ├── export │ ├── extractor │ ├── find │ ├── fix │ ├── info │ ├── onboarding │ ├── patch │ ├── project_management │ ├── repo_maintenance │ ├── server_contrib │ ├── server_dpdict │ ├── suttas │ ├── tutorial ├── shared_data ├── temp ├── tests └── tools
Структура кода
Код состоит из четырёх основных частей:
- db: Создание базы данных и построение таблиц производных данных.
- db_tests: Запуск тестов целостности данных в базе данных.
- gui2: Добавление новых слов, редактирование и обновление базы данных через графический интерфейс.
- exporter: Сборка всех частей и экспорт в различные форматы словарей.
Описание папок
-
archive/ Устаревший код, сохранённый для справки, например MCP-сервер (
archive/exporter/mcp/, архивирован 2026-09-27). -
db/ Весь код, связанный с построением и наполнением различных таблиц и столбцов базы данных.
-
models.py Модель базы данных на SQLAlchemy.
-
db_helpers.py Вспомогательные функции для создания базы данных, получения сессии, получения названий столбцов и т. д.
-
backup_tsv/ TSV-резервные копии исходных таблиц базы данных
-
bold_definitions/ Извлечение определений, выделенных жирным шрифтом, из текстов CST и их компиляция для удобного поиска.
-
db/epd/ Компиляция данных для англо-пали словаря.
-
families/ Компиляция HTML- и JSON-списков для наполнения таблиц
family_compound,family_idiom,family_root,family_wordиfamily_setв базе данных для удобного доступа. -
grammar/ Грамматические данные и их обработка.
-
inflections/ Наполнение таблицы
inflection_templatesи создание на её основе HTML-таблиц словоизменения для каждого слова. Источники:templates_index.tsv(одна строка на шаблон: pattern, like, group) иtemplates/<pattern>.tsv(один файл сетки на шаблон). -
lookup/ Наполнение таблицы
lookupдля мгновенного доступа к каждому слову словаря. -
sanskrit/ Данные для обновления столбца
sanskritв таблицеdpd_headwords. -
suttas/ Метаданные сутт и их обработка.
-
variants/ Данные о вариантных чтениях и их обработка.
-
-
db_tests/ Тесты для проверки полноты и точности базы данных пали.
- single/ Отдельные узконаправленные скрипты аудита — по одному скрипту на каждое лингвистическое или структурное правило. Скрипты
add_*также позволяют просматривать и утверждать массовые исправления данных в терминале (антонимы, составные слова семейств, расстановка дефисов).
- single/ Отдельные узконаправленные скрипты аудита — по одному скрипту на каждое лингвистическое или структурное правило. Скрипты
-
docs/ Полезная документация проекта.
-
project_folder_structure.md То, что вы читаете прямо сейчас.
-
dpd_headwords_table.md Описание реальных и виртуальных столбцов таблицы
dpd_headwords.
-
-
exporter/ Экспорт базы данных DPD в различные форматы.
-
apple_dictionary/ Экспорт DPD для Apple Dictionary.
-
deconstructor/ Экспорт деконструктора DPD в GoldenDict и MDict
-
epitaka/ Копирование мобильной базы данных DPD в локальное приложение ePitaka (только локально).
-
goldendict/ Экспорт DPD, EPD, справки и сокращений в GoldenDict и MDict
-
grammar_dict/ Экспорт грамматики DPD в GoldenDict и MDict
-
kindle/ Экспорт облегчённой версии DPD для Kindle.
-
kobo/ Экспорт облегчённой версии DPD для Kobo eReader.
-
mobile/ Экспорт облегчённой версии DPD для мобильных устройств.
-
pdf/ Экспорт DPD в формат PDF.
-
sutta_central/ Экспорт данных DPD для интеграции с SuttaCentral.
-
tbw/ Экспорт облегчённой версии DPD для интеграции с сайтом The Buddha's Words.
-
tpr/ Экспорт данных грамматического деконструктора DPD для интеграции с приложением Tipitaka Pali Reader
-
variants/ Экспорт данных о вариантных чтениях.
-
webapp/ Веб-приложение на основе базы данных DPD и FastApi, размещённое на www.dpdict.net
-
wxt_extension/ Экспорт DPD как кроссбраузерного расширения на фреймворке WXT.
-
-
go_modules/ Когда Python слишком медленный, пишем на GO
-
deconstructor/ Разбор более миллиона составных слов
-
dpdDb/ Доступ к базе данных через GORM
-
frequency/ Создание таблиц частотности и списков данных для каждого слова
-
tools/ GO-пакеты, используемые в проекте
-
-
gui2/ Графический интерфейс для ввода данных и запуска тестов базы данных
-
newsletter/ Ежемесячная рассылка: одна папка на месяц (
<YYYY-MM>/newsletter.md+pics/), общий нижний колонтитул и сборщик, на котором основаныjust newsletter-new,newsletter-previewиnewsletter-publish. -
resources/ Все внешние ресурсы, используемые проектом, подключённые как подмодули
-
scripts/ Полезные скрипты для обслуживания проекта.
см. readme скриптов для получения дополнительной информации.
-
shared_data/ Данные, используемые во всём проекте.
-
tests/ Автоматические тесты проекта.
-
tools/ Модули Python, используемые во всём проекте.