Skip to main content

Описание

Модуль quizbank для создания и хранения наборов вопросов с ответами, объединённых в группы. Поддерживает два формата данных:

  • simple — упрощённый: {"Группа": {"Вопрос": "Ответ"}} (или список ответов), удобен для ручного заполнения json;
  • stored — полный: каждый ответ помечен как правильный/неправильный, поддерживается обратный режим (вопрос и ответ меняются местами) и автогенерация недостающих неправильных вариантов.

Использование

QuestionBank

from quizbank import QuestionBank

bank = QuestionBank(
    path_to_simple="simple.json",
    path_to_stored="stored.json",
)
  • path_to_simple — путь к json файлу в simple-формате;
  • path_to_stored — путь к json файлу в stored-формате.

Оба параметра необязательны. Если указан path_to_simple, данные при инициализации автоматически конвертируются и сохраняются в stored-хранилище.

методы класса QuestionBank

— метод load_simple_json

загружает json файл simple-формата

bank.load_simple_json("simple.json")

— метод load_simple_data

загружает новые данные из словаря simple-формата (объединяются с уже имеющимися)

bank.load_simple_data({
    "Набор4": {"Вопрос1": "Ответ1", "Вопрос2": ["Ответ2", "Ответ2.1"]}
})

— метод add_question

добавляет один вопрос напрямую в stored-хранилище с явным указанием правильных и неправильных ответов

bank.add_question(
    group="Набор1",
    title="Вопрос1",
    right_answers=["Ответ1"],
    wrong_answers=["Ответ2", "Ответ3"],
)

— метод get_groups

возвращает список всех групп

groups = bank.get_groups()

— метод get_question

возвращает конкретный вопрос группы

question = bank.get_question(
    group="Набор1",
    title="Вопрос1",
    quantity_ans=5,
)

вернёт QItem для вопроса "Вопрос1" из группы "Набор1" с пятью вариантами ответа

— метод get_rand_question

возвращает случайный вопрос

question = bank.get_rand_question(
    group="Набор1",
    quantity_ans=5,
)

если group не задан — вопрос выбирается из случайной группы

— метод get_qitems

возвращает все вопросы группы

items = bank.get_qitems(group="Набор1")

— метод get_all_data_str / get_all_data_bytes

возвращает все данные stored-хранилища сериализованными в JSON (строкой или байтами)

raw = bank.get_all_data_str()

QItem

отдельно взятый вопрос с вариантами ответов; создаётся не напрямую, а через get_question / get_rand_question / get_qitems

question = bank.get_rand_question(group="Набор1")
свойства и методы QItem

— свойство title

заголовок вопроса

question.title

— свойство group

наименование группы вопроса

question.group

— свойство right_answers

список правильных ответов к вопросу

question.right_answers

— свойство wrong_answers

список неправильных ответов к вопросу

question.wrong_answers

— свойство all_answers

все ответы к вопросу (правильные + неправильные)

question.all_answers

— метод is_right

проверяет правильность выбранного ответа

question.is_right(answer)

Примеры

примеры в /examples

Metadata

Release files for quizbank 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quizbank 0.4.0
File Size Uploaded
quizbank-0.4.0.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quizbank 0.4.0
File Interpreter ABI Platform
quizbank-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.7 kB

Release files / quizbank-0.4.0.tar.gz

Download URL quizbank-0.4.0.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4f759e44b1f5cd3c85baa17d1664a029172dbcee9b6ccadebd306f5bd964e0e9
BLAKE2b-256 checksum
How to use checksums
30dd6c8d9b5a58253df056994fcfa5dfe12ff39745e960ce7c2dabf308067a46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.4 Windows/10

Release files / quizbank-0.4.0-py3-none-any.whl

Download URL quizbank-0.4.0-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb4932a72831517f2b9cf2c8e91445a4a12b9499bfc2f004db6a17bf54b38908
BLAKE2b-256 checksum
How to use checksums
2aa51cec38f5197106fac62f233d4669f0db086c2db0f68a826243f16ed3bb1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.4 Windows/10

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

This release

0.4.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page