main.py - код API, модуль для работы с ML-моделями. FlaskTest.ipynb - использование сервиса для работы с ML-алгоритмами. API реализован при помощи библиотеки flask: декораторы route позволяют гибко настроить поведение рассматриваемого модуля в соответствии с HTTP-методом (POST, GET, PUT, DELETE) и указанным URL. В основе модуля лежит класс MyModel, являющийся оберткой над ML-моделями разных типов, образуя тем самым абстракцию «модель». Обработка ошибок: методы класса проверяют корректность входных данных, но не корректируют ход выполнения программы, но выбрасывают сообщение об ошибке. Методы класса: update(params) – обновить параметры (атрибуты класса) модели. get_uid() – для разграничения атрибутов класса и их значения в рамках класса, а также контроля доступа к внутренней структуре экземпляра – рекомендуется использовать геттер, а не читать поле напрямую. set_uid(uid) – устанавливает UID экземпляра (сеттер). have_clf() – значение флага «у модели есть обученный классификатор» (другими словами, ранее к модели был корректно применён метод fit). get_info() – возвращает словарь, описывающий состояние модели; словарь содержит только интерпретируемые описания (то есть это не обратимая сериализация экземпляра). fit(x, y) – обучение модели. unfit() – перезапись дескриптора модели состоянием None, т.е. сообщаем, что экземпляр без обученной модели (см. также метод have_clf). predict(x, proba) – вернуть прогноз модели. Объект, соответствующий абстракции «совокупность моделей» обеспечивается классом MyModelsList. Методы класса: get(uid) – возвращает экземпляр класса по его UID. get_all() – возвращает список описаний всех содержащихся в Совокупности моделей. create(data) – создаёт модель. update(uid, data) – обновляет параметры (в широком смысле) модели. delete(uid) – удаляет модель.