Такс. Выкладываю мою работу за выходные. Т к большую часть времени инета у меня не было, то в svn все попало одном большим коммитом. В моем локальном git репе конечно есть промежуточные коммиты, но как их
отравить в svn я не знаю. Чтобы не ломать текущую версию создал папку newsrc, в которую все и сложил.
Теперь о ее содержимом.
1. themes.txt
Из файлика lists.py я вылил все темы в этот файл. Получилось так:
...
Название темы
Список файлов, которые к ней относятся
...
По моей идее themes.txt должен лежать в папке с базой. Рядом с папками txt и img.
2. parser.py
В основном я работал над вот этим файлом. Здесь хранится 2 класса - Parser и Card
Описание класса Card -
Класс, описывающий билет с вопросами
Вводные параметры:
(path,filelist)
path - путь к месту хранения БД
filelist - список названий файлов с текстовым описанием
Использование:
get_all_quest - возвращает генератор, где каждой значение - словарь
следующего типа:
{
card_nmb:int - Номер билета.
quest_nmb:int - Номер вопроса в билете.
image:str - Полный путь к файлу с картинкой. Если
картинки нет, то пустая строка.
question:utf8_str - Вопрос.
answers:utf8_str - Список с вариантами ответов.
corr_ans_nmb:utf8_str - Номер правильного варианта ответа.
comment:utf8_str - Пояснение к ответу.
}
Данный словарь описывает один из вопросов билета.
Таким образом этот класс имеет только один метод - get_all_quest.
Класс Parser. Имеет 2 метода -
get_card_list - Возвращает список, состоящий из пар, где 1-й элемент это название билета(напр Билет № 1), а второй - объект класса Card, который при вызове его метода get_all_quest будет возвращать словари с вопросами.
get_theme_list - Тоже самое, что вышеназванный, но только не по билетам, а по темам.
3. default.ini
Я решил, что лучше настройки по умолчанию хранить не в коде и не в ~/.pddrc. Наверно лучше их положить в /etc/pdd/default.ini. Соответственно вырезал секцию DEFAULT и скинул ее в этот файлик. Заодно туда можно будет складывать настройки приложения, которые не требуется менять, но и захардкоживать их плохо. Пока я не думал что это будет.
4. config.py
Объект конфигурации. Описалово:
Класс для работы с конфигурационными файлами. Использование:
cfg - словарь, содержащий в себе все опции из файла настроек.
read - прочитать конфигурационный файл. Если в пользовательском
каталоге нет файла .pddrc, то настройки читаются из файла с глобальными
настройками(например из /etc/pdd/default.ini) а затем записываются в
~/.pddrc
write - записать настройки в конфигурационный файл (в ~/.pddrc)
set_default - прочитать глобальные настройки и записать их в настройки
пользователя(~/.pddrc)
пока я его не очень проработал, поэтому и комментариев в коде нет. Я еще подумаю как лучше сделать, возможно перетасую кое-что.
5. main.py
Здесь я пока ничего не делал. По идее это будет тот файл, что вызывает все остальные. Думаю надо содержимым.
Вообщем прошу ваши мнения, как о коде, так и о моих нововведениях. Постарался сделать максимально независимые объекты.
Сейчас буду изучать QT. Несмотря на слабые перспективы его на N800(думаю что этот GUI придется делать на gtk) все равно хочется разобраться что и как. Пока буду ориентироваться на работу с ББ.