Skip to main content

Взаимедействие с API БГУИР

Project description

🎓 pybsuir - Получение статистики и рейтингов студентов БГУИР

Python Async

pubsuir — Python-библиотека для работы с официальным и неофициальным API БГУИР.
На данный момент функционал библиотеки включает только работу с данными, которые можно также посмотреть на этой странице.


🛠️ Установка

Через pip:

pip install pybsuir

Зависимости: по умолчанию используется aiohttp, которое устанавливается автоматически.


Установка без зависимостей

Для большей гибкости можно установить пакет без зависимостей:

pip install pybsuir --no-deps

В этом случае библиотека будет использовать встроенную реализацию на основе urllib, что позволяет работать без внешних зависимостей.

Дополнительно: Если вы хотите использовать httpx вместо aiohttp, установите его отдельно (httpx будет использован, если не найден aiohttp):

pip install httpx

⚠️ Примечание: Использование httpx или встроенной реализации скорее всего будет медленнее, чем aiohttp. Для оптимальной производительности рекомендуется использовать aiohttp.



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

import asyncio
from pybsuir import BsuirStatsClient

async def main():
    client = BsuirStatsClient()
    students = await client.get_students(20657, 2)
    print(students[0])

asyncio.run(main())

Вывод:

{
    "studentCardNumber": "15350060",
    "average": 3.89,
    "hours": 80,
    "averageShift": 0.33000000000000007,
    "first": null,
    "second": null,
    "third": null
}

или более сложный вариант для получения статистики потока по конкретному предмету:

import asyncio
from pybsuir import BsuirStatsClient

async def main():
    client = BsuirStatsClient()
    top_students = await client.get_top_students(
        speciality=20657,
        course=2,
        lesson_name_abbrev="КПрог",
        lesson_type_abbrev="ЛР"
    )

    place = 1
    for st in top_students:
        print(f"{place}. {st.student_card_number}: {' '.join([str(mark) for mark in st.marks])}")
        place += 1

asyncio.run(main())

Вывод:

1. 123456: 10 9 10
2. 654321: 9 10 9
...

📋 Основные возможности

  • Список факультетов, специальностей и курсов.
  • Получение рейтинга студентов по курсу и специальности.
  • Получение подробной информации об успеваемости студенте.
  • Все ответы приходят в виде датаклассов.

🚨 Исключения

  • BsuirStatsException — выбрасывается при любых ошибках HTTP-запроса. Содержит: status, url, text, headers.

📚 Описание методов и пример


🛠️ В будущем планируется расширения возможностей библиотеки путем добавления работы с другими эндпоинтами api БГУИР.

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

pybsuir-0.0.1b0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

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

pybsuir-0.0.1b0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file pybsuir-0.0.1b0.tar.gz.

File metadata

  • Download URL: pybsuir-0.0.1b0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for pybsuir-0.0.1b0.tar.gz
Algorithm Hash digest
SHA256 ceea5f7e92a11ddc6e6b2cbb276ff8a47f6fec96aed19e86c41656296a851738
MD5 32e1b4b4014a03dc334291c37e353fc3
BLAKE2b-256 404a45c40ea7222e23bf53f27cc114014b5e0dea290fb896c7193fc06c7b4204

See more details on using hashes here.

File details

Details for the file pybsuir-0.0.1b0-py3-none-any.whl.

File metadata

  • Download URL: pybsuir-0.0.1b0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for pybsuir-0.0.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae4f31d666a71ce5567a379decb7072e6ced65c11f76b54366706c26ac91363b
MD5 66feec895ae729fcc94b4324f5e02645
BLAKE2b-256 8b57315ed40461e50a0a76720c2e539ccc81d15efe78349c94676bb197ff4a6c

See more details on using hashes here.

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