Skip to main content

Python module for interacting with the educational platform Sdam GIA

Project description

Async-sdamgia-api

Неофициальный асинхронный Python-клиент для работы с платформой sdamgia.ru: получение задач, поиск, работа с категориями и тестами, генерация PDF и OCR-поиск по изображению.

Что умеет

  • получать задачу по id (get_problem_by_id)
  • искать задачи по тексту (search)
  • получать задачи теста по testid (get_test_by_id)
  • получать задачи категории (get_category_by_id)
  • загружать каталог тем и категорий (get_catalog)
  • генерировать тест (generate_test)
  • получать ссылку на PDF теста (generate_pdf)
  • искать задачи по изображению через OCR (search_by_img)

Поддерживаемые предметы (коды): math, mathb, phys, inf, rus, bio, en, chem, geo, soc, de, fr, lit, sp, hist.

Установка

Требования:

  • Python 3.12+
pip install sdamgia-api

Для разработки:

python -m pip install --upgrade pip
python -m pip install -e .[dev]

Быстрый старт

import asyncio
from sdamgia import SdamGIA


async def main() -> None:
    async with SdamGIA() as api:
        problem = await api.get_problem_by_id("math", "1001")
        print(problem["id"], problem["answer"])


asyncio.run(main())

Примеры API

# Поиск задач
ids = await api.search("math", "Найдите количество")

# Каталог предмета
topics = await api.get_catalog("math")

# Генерация теста и PDF
new_test_id = await api.generate_test("math", {"full": 1})
pdf_url = await api.generate_pdf("math", new_test_id, pdf="h")

Рендер задачи в изображение (get_problem_by_id) поддерживает img:

  • pyppeteer
  • grabzit
  • html2img

OCR-поиск по изображению

Метод search_by_img использует pytesseract.

  1. Установите Python-пакет (если не установлен):
pip install pytesseract
  1. Установите Tesseract-OCR в ОС и при необходимости укажите путь:
api.tesseract_src = "/usr/bin/tesseract"
# Windows пример: C:/Program Files/Tesseract-OCR/tesseract.exe
  1. Запустите поиск:
ids = await api.search_by_img("rus", "Image.jpg")

Тесты

В проекте используется live-контур (реальные запросы к *.sdamgia.ru):

pytest -m live -q

Важно:

  • тесты зависят от сети и доступности внешнего сайта
  • структура внешнего HTML может меняться без предупреждения
  • OCR ветка в тестах замокана (без обязательной установки Tesseract)

CI

GitHub Actions запускает live-тесты на push и pull_request для Python 3.12 и 3.13. При падении сохраняются логи (junit + live.log) как artifacts.

Для AI-агентов

В репозитории есть файл AGENTS.md с обязательными правилами для агентной разработки:

  • кодстайл и требования к Python-коду
  • правила по docstring (Google-style)
  • требования к тестам
  • список доступных skills и когда их применять

Если вы используете Codex/агента, начинайте с чтения AGENTS.md.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_sdamgia_api-0.0.1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

async_sdamgia_api-0.0.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file async_sdamgia_api-0.0.1.tar.gz.

File metadata

  • Download URL: async_sdamgia_api-0.0.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for async_sdamgia_api-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b031f5a4ff299ae75ae3a09d871952f1c3094b565d8f1e27ee3a0cb16ca4d59b
MD5 6eca82dc25510c92e1bf93609f765a78
BLAKE2b-256 87a6788422df81aa4c321c4eb2a9e532adbee9f582dc847ec6e8ae6af01ba983

See more details on using hashes here.

Provenance

The following attestation bundles were made for async_sdamgia_api-0.0.1.tar.gz:

Publisher: publish-pypi.yml on Sayrrexe/Async-SdamGia-Api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file async_sdamgia_api-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for async_sdamgia_api-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2dce798e93157339d617d2457afe25f45c25de2ca9efc5ddd05b9bbaa217d891
MD5 c0e3966e76d7997ab1416ac4f42a9e2a
BLAKE2b-256 d279c2f7081088d58ac4cea1c87ea722653d732099f802d46a7cca9749c631e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for async_sdamgia_api-0.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on Sayrrexe/Async-SdamGia-Api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page