# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['pydnevnikruapi', 'pydnevnikruapi.aiodnevnik', 'pydnevnikruapi.dnevnik']

package_data = \
{'': ['*']}

install_requires = \
['aiohttp>=3.6.2,<4.0.0', 'requests>=2.22.0,<3.0.0']

setup_kwargs = {
    'name': 'pydnevnikruapi',
    'version': '0.1.1',
    'description': '',
    'long_description': '<p align="center">\n  <img alt="Version" src="https://img.shields.io/badge/version-beta-blue" />\n  <img alt="Python 3.7+" src="https://img.shields.io/badge/Python-3.7+-%23FFD242" />\n  <img alt="code-style" src="https://img.shields.io/badge/code--style-black-%23000000" />\n  <img alt="ШУЕ-ППШ" src="https://img.shields.io/badge/%D0%A8%D0%A3%D0%95-%D0%9F%D0%9F%D0%A8-red" />\n  <img alt="The Unlicense" src="https://img.shields.io/badge/license-The%20Unlicense-blue" />\n</p>\n\n<h1 align="center">  api.dnevnik.ru wrapper </h1>\n<p align="center">Упрощение работы с api всероссийского электронного дневника как с токеном, так и без него.</p>\n\n## Установка\n\n```sh\npip install pydnevnikruapi\n```\nили\n```sh\npip install https://github.com/kesha1225/DnevnikRuAPI/archive/master.zip --upgrade\n```\n\n## Документация\n\nДокументация доступна здесь - https://kesha1225.github.io/DnevnikRuAPI/\nПо методам здесь - https://api.dnevnik.ru/partners/swagger/ui/index\n\n## Пример синхронного использования\n\n#### Получение домашнего задания на указанный период без токена.\n\n```python3\nfrom pydnevnikruapi.dnevnik import dnevnik\nfrom datetime import datetime\n\nlogin = "login"\npassword = "password"\n# Получаем доступ через логин и пароль\n\ndn = dnevnik.DiaryAPI(login=login, password=password)\n\nprint(dn.get_school_homework(1000002283077, datetime(2019, 9, 5), datetime(2019, 9, 15)))\n#  Получение домашнего задания текущего пользователя для школы с id 1000002283077 в период с 05-09-2019 по 15-09-2019\n\nprint(dn.get_edu_groups())\n#  Получение групп обучения текущего пользователя\n```\n\n## Пример асинхронного использования\n\n#### Получение домашнего задания на указанный период без токена.\n\n```python3\nfrom pydnevnikruapi.aiodnevnik import dnevnik\nfrom pydnevnikruapi.aiodnevnik.utils import TaskManager\nimport asyncio\nfrom datetime import datetime\n\n\nasync def get_dn_info():\n    homework = await dn.get_school_homework(\n        1000002283077, str(datetime(2019, 9, 5)), str(datetime(2019, 9, 15))\n    )\n    #  Получение домашнего задания текущего пользователя для школы с id 1000002283077 в период с 05-09-2019 по 15-09-2019\n    print(homework)\n\n    edu_groups = await dn.get_edu_groups()\n    #  Получение групп обучения текущего пользователя\n    print(edu_groups)\n\n\nasync def close_session():\n    await dn.close_session()\n    #  В конце использования закрываем сессию\n\n\nif __name__ == "__main__":\n    login = "login"\n    password = "password"\n    dn = dnevnik.AsyncDiaryAPI(login=login, password=password)\n    # Получаем доступ через логин и пароль\n\n    loop = asyncio.get_event_loop()\n    # Добавляем все наши функции в event loop через Task Manager\n\n    task_manager = TaskManager(loop)\n    task_manager.add_task(get_dn_info)\n    task_manager.run(on_shutdown=close_session)\n    # Закрываем сессию по завершению работы\n\n```\nЧтобы пропустить шаг завершения сессии в последнем примере воспользуйтесь [примером](https://github.com/kesha1225/DnevnikRuAPI/blob/master/examples/another_async_example.py)\n\n## Соотнесение апи методов и методов pydnevnikruapi\n\n\n/v2.0/users/me/organizations -  **get_organizations()** - Список идентификаторов организаций текущего пользователя\n\n/v2.0/users/me/organizations/{organizationId} -  **get_organization_info(organization_id: int)** - Данные указанной организации пользователя\n\n/v2.0/authorizations -  **get_token(login, password)** - Обменять код доступа на токен\n\n/v2.0/persons/{person}/reporting-periods/{period}/avg-mark - **get_person_average_marks(person: int, period: int)** - Оценки персоны за отчетный период\n\n/v2.0/edu-groups/{group}/reporting-periods/{period}/avg-marks/{date} - **get_group_average_marks_by_date( group_id: int, period: int, date: datetime.datetime)** - Оценки учебной группы по предмету за отчетный период до определенной даты\n\n/v2.0/edu-groups/{group}/avg-marks/{from}/{to} - **get_group_average_marks_by_time(group_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Оценки учебной группы за период\n\n/v2.0/user/{userID}/children - **get_user_children(user_id: int)** - Получение списка детей по идентификатору родительского пользователя\n\n/v2.0/person/{personID}/children - **get_person_children(person_id: int)** - Получение списка детей по идентификатору родительской персоны\n\n/v2.0/users/me/classmates - **get_classmates()** - Список id пользователей одноклассников текущего пользователя, если он является учеником, либо список активных участников образовательных групп пользователя во всех остальных случаях\n\n/v2.0/users/me/context - **get_context()** - Получение контекстной информации по пользователю\n\n/v2.0/users/{userId}/context - **get_user_context(user_id: int)** - Получение контекстной информации по пользователю\n\n/v2.0/edu-group/{group}/subject/{subject}/period/{period}/criteria-marks-sections - **func** - Метод получения списка секций СОр + СОч для класса по предмету в выбранном периоде c соответствующей информацией\n\n/v2.0/edu-group/{group}/person/{person}/subject/{subject}/period/{period}/criteria-marks - **func** - Метод получения суммативных оценок (СОр, СОч) ученика класса по предмету за период, с привязкой к конкретной теме/суммативной оценки четверти\n\n/v2.0/edu-group/{group}/period/{period}/criteria-marks - **func** - Метод получения списка оценок (СОр, СОч) класса сгруппированные по ученикам и предметам за период (т.е. оценки каждого ученика класса, разбитые по предметам)\n\n/v2.0/edu-group/{group}/subject/{subject}/period/{period}/criteria-marks - **func** - Метод получения всех оценок (СОр и СОч) класса (группировка по ученикам) за период по выбранному предмету\n\n/v2.0/edu-group/{group}/criteria-marks-totals - **get_final_group_marks(group_id: int)** - Метод, позволяющий получить итоговые оценки всего класса (каждого ученика) по всем предметам\n\n/v2.0/edu-group/{group}/subject/{subject}/criteria-marks-totals - **get_final_group_marks_by_subject(group_id: int, subject_id: int)** - Метод, позволяющий получить итоговые оценки всего класса по указанному предмету\n\n/v2.0/edu-group/{group}/criteriajournalsection/{section}/criteria-marks - **func** - Метод полученипя списка суммативных оценок класса за конкретную тему (СОр или СОч по section_id параметру, который является связывающим звеном для оценок одной темы)\n\n/v2.0/edu-group/{group}/criteriajournalsection/{section}/criteria-marks-totals - **func** - Метод полученипя списка итоговых суммативных оценок класса за конкретную тему (СОр или СОч по section_id параметру, который является связывающим звеном для сумативной оценки за четверть)\n\n/v2.0/users/{user}/school-memberships - **get_user_memberships(user_id: int)** - Список участий в школах для произвольного пользователя\n\n/v2.0/users/{user}/education - **get_user_education(user_id: int)** - Список участий в школах для произвольного пользователя\n\n/v2.0/persons/{person}/school-memberships - **get_person_memberships(person_id: int)** - Список участий в школах для произвольной персоны\n\n/v2.0/users/me/schools - **get_schools()** - Список идентификаторов школ текущего пользователя\n\n/v2.0/users/{user}/schools - **get_user_schools(user_id: int)** - Список идентификаторов школ произвольного пользователя\n\n/v2.0/users/me/edu-groups - **get_edu_groups()** - Список идентификаторов классов текущего пользователя\n\n/v2.0/users/{user}/edu-groups - **get_user_edu_groups(user_id: int)** - Список идентификаторов классов текущего пользователя\n\n/v2.0/users/me/school-memberships - **get_memberships()** - Список участий в школах для текущего пользователя\n\n/v2.0/edu-groups/{eduGroup} - **get_group_info(edu_group_id: int)** - Класс или учебная группа\n\n/v2.0/edu-groups - **get_groups_info(edu_groups_list: list)** - Список учебных групп\n\n/v2.0/schools/{school}/edu-groups - **get_school_groups(school_id: int)** - Список классов в школе\n\n/v2.0/persons/{person}/edu-groups - **get_person_groups(person_id: int)** - Учебные группы персоны\n\n/v2.0/persons/{person}/edu-groups/all - **get_person_groups_all(person_id: int)** - 123\n\n/v2.0/persons/{person}/schools/{school}/edu-groups - **get_person_school_groups(person_id: int, school_id: int)** - Учебные группы персоны в школе\n\n/v2.0/edu-groups/{group}/persons - **get_groups_pupils(edu_group_id: int)** - Список учеников учебной группы\n\n/v2.0/edu-groups/students - **get_students_groups_list()** - Список групп с учениками\n\n/v2.0/edu-groups/{groupId}/parallel - **get_groups_parallel(group_id: int)** - Список параллельных групп(включая группу указанную в параметрах)\n\n/authorizations/esia/v2.0/users/linked - **func** - 123\n\n/authorizations/esia/v2.0 - **func** - 123\n\n/v2.0/files/async/upload - **func** - Метод загрузки файла. Файл будет загружен в первую папку привязанной к приложению сети. При загрузке файла обязательно надо передать заголовки Content-Type: multipart/form-data с соотвествующим boundary и верный Content-Length. \n\n/v2.0/folder/{folderId}/files/async/upload - **func** - Метод для загрузки файла в папку. При загрузке файла обязательно надо передать заголовки Content-Type: multipart/form-data с соотвествующим boundary и верный Content-Length.\n\n/v2.0/files/async/upload/base64 - **func** - Метод загрузки файла в формате строки base64. При загрузке файла обязательно надо передать заголовки Content-Type: application/json, а бинарные данные файла передать в теле запроса. Файл будет загружен в первую папку привязанной к приложению сети. \n\n/v2.0/files/async/upload/{taskId} - **func** - Метод получения загруженного файла.\n\n/v2.0/files/{fileId}/repost - **func** - Репост файла\n\n/v2.0/folder/{folderId}/files - **func** - Получение файлов в папке\n\n/v2.0/apps/current/files - **func** - Получение файлов приложения\n\n/v2.0/files/{fileId}/like - **func** - Увеличения количества лайков/голосов на единицу\n\n/v2.0/edu-groups/{group}/final-marks - **get_group_marks(group_id: int)** - Оценки в учебной группе\n\n/v2.0/persons/{person}/edu-groups/{group}/final-marks - **get_person_group_marks(person_id: int, group_id: int)** - Оценки персоны в учебной группе\n\n/v2.0/persons/{person}/edu-groups/{group}/allfinalmarks - **get_person_group_marks_final(person_id: int, group_id: int)** - Итоговые оценки персоны в учебной группе\n\n/v2.0/edu-groups/{group}/subjects/{subject}/final-marks - **get_group_subject_final_marks(group_id: int, subject_id: int)** - Оценки по предмету в учебной группе\n\n/v2.0/users/me/friends - **get_friends()** - Список id пользователей друзей текущего пользователя\n\n/v2.0/users/{user}/friends - **get_user_friends(user_id: int)** - Список id пользователей друзей конкретного пользователя по его id\n\n/v2.0/users/me/school/{school}/homeworks - **def get_school_homework(school_id: int, start_time: datetime.datetime, end_time: datetime.datetime):** - Получить домашние задания пользователя за период времени\n\n/v2.0/users/me/school/homeworks - **get_homework_by_id(homework_id: int)** - Получить домашние задания по идентификаторам\n\n/v2.0/persons/{person}/school/{school}/homeworks - **get_person_homework(school_id: int,person_id: int, start_time: datetime.datetime, end_time: datetime.datetime):** - Получить домашние задания обучающегося за период времени\n\n/v2.0/works/{workId}/test - **func** - Прикрепить тест к дз\n\n/v2.0/lessons/{lesson}/log-entries - **delete_lesson_log(lesson_id: int, person_id: int)** - Список отметок о посещаемости на уроке\n\n/v2.0/lesson-log-entries - **get_lesson_logs(lessons_ids: list)** - Список отметок о посещаемости на нескольких уроках\n\n/v2.0/lesson-log-entries/lesson/{lesson}/person/{person} - **get_person_lesson_log(person_id: int, lesson_id: int)** - Отметка о посещаемости ученика на уроке\n\n/v2.0/lesson-log-entries/group/{eduGroup} - **get_group_lesson_log(group_id: int, subject_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Список отметок о посещаемости на уроках по заданному предмету в классе за интервал времени\n\n/v2.0/lesson-log-entries/person/{personID}/subject/{subjectID} - **func** - Список отметок о посещаемости обучающегося по предмету за интервал времени\n\n/v2.0/lesson-log-entries/person={personID}&subject={subjectID}&from={from}&to={to} - **get_person_subject_lesson_log(person_id: int,subject_id: int,start_time: datetime.datetime,end_time: datetime.datetime)** - Список отметок о посещаемости обучающегося по предмету за интервал времени\n\n/v2.0/persons/{person}/lesson-log-entries - **get_person_lesson_logs(person_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Список отметок о посещаемости обучающегося за интервал времени\n\n/v2.0/lesson-log-entries/statuses - **get_lesson_log_statuses()** - Получить список возможных отметок о посещаемости. Пример ответа - ["Attend","Absent","Ill","Late","Pass"].\n\n/v2.0/lessons/{lesson} - **get_lesson_info(lesson_id: int)** - Получить урок с заданным id\n\n/v2.0/lessons/many - **get_many_lessons_info(lessons_list: list)** - Получение списка уроков по списку id\n\n/v2.0/edu-groups/{group}/lessons/{from}/{to} - **get_group_lessons_info(group_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Уроки группы за период\n\n/v2.0/edu-groups/{group}/subjects/{subject}/lessons/{from}/{to} - **get_group_lessons_info(group_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Уроки группы по предмету за период\n\n/v2.0/works/{workID}/marks/histogram - **get_marks_histogram(work_id: int)** - Получение деперсонализированной гистограмы оценок всего класса по идентификатору работы\n\n/v2.0/periods/{periodID}/subjects/{subjectID}/groups/{groupID}/marks/histogram - **get_subject_marks_histogram(group_id: int, period_id: int, subject_id: int)** - Получение деперсонализированной гистограмы оценок всего класса за отчетный период\n\n/v2.0/marks/{mark} - **get_mark_by_id(mark_id: int)** - Оценка\n\n/v2.0/works/{work}/marks - **get_marks_by_work(work_id: int)** - Список оценок за работу на уроке\n\n/v2.0/lessons/{lesson}/marks - **get_marks_by_lesson(lesson_id: int)** - Оценки на уроке\n\n/v2.0/lessons/marks - **get_marks_by_lessons(lessons_ids: list)** - Список оценок за несколько уроков\n\n/v2.0/lessons/many/marks - **func** - Список оценок за несколько уроков\n\n/v2.0/edu-groups/{group}/marks/{from}/{to} - **get_group_marks_period(group_id: int,start_time: datetime.datetime, end_time: datetime.datetime)** - Оценки учебной группы за период\n\n/v2.0/edu-groups/{group}/subjects/{subject}/marks/{from}/{to} - **get_group_subject_marks(group_id: int, subject_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Оценки учебной группы по предмету за период\n\n/v2.0/persons/{person}/schools/{school}/marks/{from}/{to} - **get_person_marks(person_id: int, school_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Оценки персоны в школе за период\n\n/v2.0/persons/{person}/edu-groups/{group}/marks/{from}/{to} - **func** - Оценки персоны в учебной группе за период\n\n/v2.0/persons/{person}/lessons/{lesson}/marks - **get_person_lessons_marks(person_id: int, lesson_id: int)** - Оценки персоны за урок\n\n/v2.0/persons/{person}/works/{work}/marks - **get_person_work_marks(person_id: int, work_id: int)** - Оценки персоны за работу\n\n/v2.0/persons/{person}/subjects/{subject}/marks/{from}/{to} - **get_person_subject_marks(person_id: int, subject_id: int, start_time: datetime.datetime, end_time: datetime.datetime)** - Оценки персоны по предмету за период\n\n/v2.0/persons/{person}/subject-groups/{subjectgroup}/marks/{from}/{to} - **func** - Оценки персоны по предмету за период\n\n/v2.0/lessons/{date}/persons/{person}/marks - **func** - Оценки персоны по дате урока\n\n/v2.0/persons/{person}/marks/{date} - **get_marks_by_date(person_id: int, date: datetime.datetime)** - Оценки персоны по дате выставления оценки\n\n/v2.0/persons/{personId}/works/{workId}/mark - **get_person_work_marks(person_id: int, work_id: int)** - Выставить оценку ученику по работе\n\n/v2.0/marks/values - **get_marks_values()** - Метод возвращает все поддерживаемые системы (типы) оценок и все возможные оценки в каждой из систем.\n            \n/v2.0/marks/values/type/{type} - **get_marks_values_by_type(marks_type: str)** - Метод возвращает все возможные оценки в запрашиваемой системе (типе) оценок. Чтобы узнать, какие типы поддерживаются нужно предварительно делать запрос marks/values без параметров.\n\n\nTODO: доделать методы  \n/v2.0/persons - **func** - Список учеников в классе или учебной группе\n\n/v2.0/edu-groups/{eduGroup}/students - **func** - Список учеников в классе или учебной группе\n\n/v2.0/persons/search - **func** - 123\n\n/v2.0/persons/{person} - **func** - Профиль персоны\n\n/v2.0/persons/{person}/group/{group}/recentmarks - **func** - Последние оценки/отметки посещаемости персоны по предмету, указанному в параметре subject, начиная с даты определенном в параметре fromDate и с ограничением на выводимое количество указанном в параметре limit\n\n/authorizations/esia/v2.0/regions - **func** - 123\n\n/v2.0/edu-groups/{eduGroup}/reporting-periods - **func** - Список отчётных периодов для класса или учебной группы\n\n/v2.0/edu-groups/{eduGroup}/reporting-period-group - **func** - Группа отчетных периодов для класса или учебной группы\n\n/v2.0/persons/{person}/groups/{group}/schedules - **func** - Расписание ученика\n\n/v2.0/school-rating/from/{from}/to/{to} - **func** - ѕолучение списка школ с наивысшим рейтингом за выбранный период\n\n/v2.0/school-rating/from/{from}/to/{to}/new - **func** - ѕолучение списка новых школ с наивысшим рейтингом за выбранный период\n\n/v2.0/schools/{school} - **func** - Профиль школы\n\n/v2.0/schools - **func** - Список профилей нескольких школ (или список образовательных организаций пользователя, если не передано ни одного идентификатора школы)\n\n/v2.0/schools/person-schools - **func** - Список образовательных организаций пользователя\n\n/v2.0/schools/cities - **func** - Список населенных пунктов, образовательные организации которых включены в Систему\n\n/v2.0/schools/search/by-oktmo - **func** - 123\n\n/v2.0/schools/{school}/parameters - **func** - Параметры общеобразовательных организаций\n\n/v2.0/events/{id}/invite - **func** - Пригласить в событие\n\n/v2.0/groups/{id}/invite - **func** - Пригласить в группу\n\n/v2.0/networks/{id}/invite - **func** - Пригласить в сеть\n\n/v2.0/edu-groups/{eduGroup}/subjects - **func** - Список предметов, преподаваемых в классе в текущем отчётном периоде\n\n/v2.0/schools/{school}/subjects - **func** - Список предметов, преподаваемых в образовательной организации в текущем учебном году\n\n/v2.0/tasks/{task} - **func** - Домашнее задание\n\n/v2.0/tasks - **func** - Домашние задания за несколько уроков\n\n/v2.0/lessons/{lesson}/tasks - **func** - Список домашних заданий за урок\n\n/v2.0/works/{work}/tasks - **func** - Список домашних заданий\n\n/v2.0/persons/{person}/tasks - **func** - Список домашних заданий ученика по предмету\n\n/v2.0/tasks/{personId}/undone - **func** - Список невыполненных домашних заданий обучающегося с истёкшим сроком выполнения\n\n/v2.0/teacher/{teacher}/students - **func** - Список учеников для учителя который ведет уроки у этих учеников(они должны быть в расписании) от недели назад и на 30 дней вперед\n\n/v2.0/schools/{school}/teachers - **func** - Список преподавателей в выбранной образовательной организации\n\n/v2.0/edu-groups/{group}/teachers - **func** - Список учителей, которые ведут уроки в данной группе, учитываются уроки от недели назад и на 30 дней вперед\n\n/v2.0/thematic-marks/{mark} - **func** - Получить оценку с заданным id\n\n/v2.0/thematic-marks - **func** - Сохранить оценку\n\n/v2.0/persons/{person}/edu-groups/{group}/subjects/{subject}/thematic-marks/{from}/{to} - **func** - Оценки персоны по предмету в учебной группе за период\n\n/v2.0/persons/{person}/edu-groups/{group}/thematic-marks/{from}/{to} - **func** - Оценки персоны в учебной группе за период\n\n/v2.0/persons/{person}/schools/{school}/thematic-marks/{from}/{to} - **func** - Оценки персоны в школе за период\n\n/v2.0/edu-groups/{group}/subjects/{subject}/thematic-marks - **func** - Оценки в учебной группе по предмету\n\n/v2.0/schools/{school}/timetables - **func** - Получение расписания школы\n\n/v2.0/edu-groups/{eduGroup}/timetables - **func** - Получение расписания учебной группы\n\n/v2.0/users/me/feed - **func** - Лента пользователя\n\n/v2.0/users/{user}/groups - **func** - Список идентификаторов групп пользователя\n\n/v2.0/users/me/children - **func** - Список id пользователей детей текущего пользователя\n\n/v2.0/users/{user}/relatives - **func** - Получение всех родственных связей произвольного пользователя.\n\n/v2.0/users/me/relatives - **func** - Получение всех родственных связей текущего пользователя.\n\n/v2.0/users/me/childrenrelatives - **func** - Список id всех родственных связей детей произвольного пользователя\n\n/v2.0/users/{user} - **func** - Профиль произвольного пользователя. Профиль текущего пользователя можно получить по users/me\n\n/v2.0/users/me - **func** - Профиль текущего пользователя.\n\n/v2.0/users/me/roles - **func** - Роли текущего пользователя.\n\n/v2.0/users/many - **func** - Профили нескольких пользователей\n\n/v2.0/users - **func** - Профили нескольких пользователей\n\n/v2.0/users/{user}/roles - **func** - Роли пользователя\n\n/v2.0/users/{user}/wallrecord - **func** - Отправить сообщение с изображением на стену пользователя\n\n/v2.0/edu-groups/{group}/wa-marks/{from}/{to} - **func** - Средние взвешенные оценки учебной группы за период\n\n/v2.0/works - **func** - Список работ на уроке\n\n/v2.0/lessons/{lesson}/works - **func** - Список работ на уроке\n\n/v2.0/works/{work} - **func** - Работа на уроке\n\n/v2.0/works/many - **func** - Получение списка работ по списку id\n\n/v2.0/works/{work}/persons/{person}/status - **func** - Изменить статус выполнения домашней работы учащимся.\n\n/v2.0/work-types/{school} - **func** - Получение списка всех типов работ школы\n',
    'author': 'kesha1225',
    'author_email': 'samedov03@mail.ru',
    'maintainer': None,
    'maintainer_email': None,
    'url': None,
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'python_requires': '>=3.7,<4.0',
}


setup(**setup_kwargs)
