Skip to main content

🌐 RUSSIAN | ENGLISH

Описание

Модуль 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.5.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.5.0
File Size Uploaded
quizbank-0.5.0.tar.gz 11.9 kB Details

Built distribution (wheel)

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

Total release size: 25.9 kB

Release files / quizbank-0.5.0.tar.gz

Download URL quizbank-0.5.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
145641e7da8b841fc7b55d9ce9450532d22bd501718330b18ba76a10fd9628d5
BLAKE2b-256 checksum
How to use checksums
9f2551b5df6d29c5609058be1430ad34a8ec4de921ccdf5c7ba543250247af72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

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

Download URL quizbank-0.5.0-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
652d91d90b6e51b0a7a974e20ac5aa3a57a8e0a18dc5ceb2e68ce480619cae30
BLAKE2b-256 checksum
How to use checksums
bc03377cca0b46517240d33b57292cbb3f8d25626aa33179bbf63a17c9027d3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

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