Справочник¶
Note
У всех методов есть аргумент requests_timeout
, он отвечает за то, сколько секунд клиент будет пытаться сделать запрос к апи.
Если соединение отвалилось по своему таймауту, но requests_timeout
ещё не закончился, то будет ещё один запрос в апи (при этом requests_timeout
не сбрасывается, и даже только что начавшийся запрос может быть отменён, если requests_timeout
достигнут (и это касается любого запроса, а не только повторений)).
Если указать requests_timeout=0
, то запрос будет повторяться вечно.
Помимо указания requests_timeout
для каждого метода, можно указать его в конструкторе класса NetSchoolAPI
, и он будет использован по умолчанию. Если таймаут не указан нигде, то по умолчанию он равен 5
.
requests_timeout
, переданный аргументом в метод инстанса NetSchoolAPI
, является более приоритетным, чем requests_timeout
, переданный в инициализатор.
Diary¶
Info
В «Сетевом городе» дневник находится на /angular/school/studentdiary/
.
Объект класса Diary
содержит три поля:
start: date
— дата, с которой начинается дневник
>>> diary.start
datetime.date(2021, 4, 19)
end: date
— дата последнего дня в дневнике:
>>> diary.end
datetime.date(2021, 4, 24)
schedule: list[Day]
— список объектовDay
:
>>> diary.schedule
[Day(day=datetime.date(2021, 4, 22), lessons=[Lesson(...), ...]), ...]
Day¶
Расписание одного дня с домашними заданиями и оценками. В классе два поля:
day: date
>>> wednesday = diary.schedule[2]
>>> wednesday.day
datetime.date(2021, 4, 21)
lessons: list[Lesson]
— расписание на день:
>>> wednesday.lessons
[Lesson(number=1, start=datetime.time(8, 30), ...), ...]
Lesson¶
Поле assignments
может содержать домашнее задание или оценку/отметку о задолженности.
Поля класса Lesson
:
day: date
— день, в который проходит урокstart: time
— время начала урокаend: time
— время окончания урокаnumber: int
— номер урока в расписанииroom: str
— название кабинета, в котором проходит урокsubject: str
— название предметаassignments: list[Assignment]
— домашнее задание, оценки и прочее
Assignment¶
Из-за реализации «Сетевого города» домашние задания и оценки представляются одним классом с разным typeId
и наличием поля mark
. Поэтому нельзя отличить домашнее задание по русскому языку и отметку за контрольную по биологии, не посмотрев на «тип» и «оценку» объекта.
Домашние задания и оценки¶
За оценки и просроченность заданий отвечают поля mark
и is_duty
соответственно.
Домашнее задание без оценки¶
>>> day.lessons[0].assignments
[Assignment(type='Домашнее задание', subject='История', content='§§ 16–19', mark=None, ...), ...]
Оценка за самостоятельную работу¶
>>> day.lessons[2].assignments
[Assignment(type='Самостоятельная работа', subject='Информатика', content='Написать NetSchoolAPI', mark=4, ...), ...]
Просроченное чтение наизусть¶
>>> day.lessons[5].assignments
[Assignment(type='Чтение наизусть', subject='Литература', content='«Блек энд Уайт» Маяковского', mark=None, is_duty=True, ...), ...]
Note
Задание может быть либо просрочено, либо за него может стоять оценка. Поэтому mark
и is_duty
не могут одновременно иметь значение. Если is_duty=True
, то mark=None
, как и наоборот, если mark=4
, то is_duty=False
.
Оценка за сочинение¶
>>> day.lessons[3].assignments
[Assignment(type='Сочинение', subject='Литература', content='Моё отношение к Обломову', mark=5, ...), ...]
Комментарии¶
Комментарий — сообщение от учителя ученику. На сайте «Сетевого города» комментарии отображаются как синие треугольнички возле оценок.
>>> assignment = day.lessons[1].assignments
>>> assignment.comment
'Дописать сочинение до 4 февраля'
>>> # или если комментария к заданию нет:
>>> assignment.comment
''
Announcement¶
Note
Объявления на сайте «Сетевого города» находятся на /angular/school/announcements/
Класс Announcement содержит 4 поля:
name: str
— названиеcontent: str
— текст объявленияpost_date: date
— дата, когда объявление было загружено на сайтattachments: list[Attachment]
— приложения к объявлению
Attachment¶
Приложенные файлы к урокам и объявлениям.
id: int
— поле используется, чтобы скачивать файлыname: str
— имя файлаdescription: str
— короткое описание файла
School¶
Контакты школы, адрес, руководящие должности и описание.
Note
Некоторые из полей могут быть незаполнены. Поля берутся из карточки на сайте «Сетевого города». Если вам нужна ещё информация оттуда — создайте тему на гитхабе.
name
— название школыabout
— небольшое описаниеaddress
— юридический адресemail
site
— УРЛ сайта школыphone
— контактный номер телефонаdirector
— ФИО директора школыAHC
— заместителя по АХЧIT
— по ИТUVR
— по УВР