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.1

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.1
File Size Uploaded
quizbank-0.4.1.tar.gz 9.9 kB Details

Built distribution (wheel)

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

Total release size: 21.6 kB

Release files / quizbank-0.4.1.tar.gz

Download URL quizbank-0.4.1.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
446f259fb442800518343b3cc327fd1a5549b6f0331fea72d05378f526062064
BLAKE2b-256 checksum
How to use checksums
3c3c5cfa8aceb24325024c9885c03b7d7e83eb93b4179501dfca7d8bdfa1af0e
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 3, 2026.

Transparency log

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

Download URL quizbank-0.4.1-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5b36d2df5d3e62b0a1a16110334fa42d43edf777276611e3538197408573312
BLAKE2b-256 checksum
How to use checksums
aa021ae3240886dfa7cc6d1d0356dab855d4234a99a881457f1666ad07430179
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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.2

2 release files

This release

0.4.1 This release

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