IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     28.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Network configuration compliance и как его готовить

TLDR: в этой статье я рассуждаю о подходах к организации валидации конфигураций сетевых железок и презентую свой плагин для NetBox, позволяющий легко создавать эти самые комплаенс‑тесты.

     25.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Python Дайджест: как ускорить Django проект до (почти) максимума

Завершение цикла статей про техническое оживление Python Дайджест. В первых трех частях рассказано как был совершен переход с Python 3.4 на Python 3.11 и Django 4, отформатирована вся кодовая база с pre-commit, настроена автоматизация задач на основе Github Actions. В заключительной части расскажу как получить "быстрый" сайт.

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Использование enum в Python

Enum (перечисление) - это удобный инструмент для определения констант и управления состоянием приложения в Python 3. Он позволяет определить набор именованных констант, которые могут использоваться в коде, что делает код более читаемым и понятным. Однако, использование enum имеет и свои ограничения и недостатки, которые также необходимо учитывать. В данной статье мы рассмотрим, как использовать enum в Python 3, а также обсудим его преимущества и недостатки.

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

GPT-4 добавляем новые знания: Git репозиторий

GPT-4 позволяет достаточно просто писать boilerplate код с использованием различных языков, технологий и библиотек. Но, есть небольшая проблема, данные GPT-4 не совсем актуальные и ограничены серединой 2021 года.

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

StackLLaMA: практическое руководство по обучению LLaMA с помощью RLHF

ChatGPTGPT-4 и Claude — это мощные языковые модели, которые дообучают, используя метод, который называется «обучение с подкреплением на основе отзывов людей» (Reinforcement Learning from Human Feedback, RLHF). Благодаря этому такие модели лучше отражают наши ожидания в плане их поведения, они лучше соответствуют тому, как мы собираемся их использовать.

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Что произошло в мире Python за последний месяц

В апреле поговорили об исследовании экосистемы Django от JetBrains, LTS-релизе Django 4.2, релизе Pandas 2.0 и свежих PEP. Под катом — текстовая выжимка из обсуждения.

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Быстрое нахождениe остатка от деления больших чисел для делителей специального вида

В этой статье я расскажу об одном способе вычисления x mod p, для p вида (2 ** n - omega), причём omega значительно меньше 2 ** n. Напишу генератор констант на Python. Приведу пару игрушечных примеров на С++, для которых может быть выполнено исчерпывающее тестирование для всех возможных аргументов. А в качестве серьёзной проверки - вычислю 97! mod (2 ** 256 - 2 ** 32 - 977).

     24.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Статьи

Что такое драйвера в Jija?

Я собираюсь потихоньку рассказывать о своей идеалогии и привлекать больше людей к этому проекту, так что, буду рассказывать об интересных решениях, которые были применены в этом проекте.Ну и по случаю появления драйвера для sqlalchemy, на этот раз речь пойдёт про драйвера, а если вы пропустили вступительную статью, советую прочитать сначала её для понимания.

     21.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Пишем простой ML веб-сервис на FastAPI

Данный туториал пошагово разбирает процесс создания веб-приложения для определения тональности текста на основе NLP-модели. Мы будем использовать модель из библиотеки Hugging Face Hub, но описанный подход подойдет для любой задачи машинного обучения. План:1. Загрузка и подготовка модели машинного обучения для использования в веб-сервисе.2. Создание веб-сервиса с помощью FastAPI.3. Изучение пользовательского интерфейса FastAPI для удобного ручного тестирования и демонстрации работы приложения.4. Написание автоматических тестов с помощью библиотеки pytest.5. Запуск приложения в Docker-контейнере.Код доступен на GitHub.

     21.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Асинхронный файловый api-сервис

Идея написать данную статью родилась после моего фейла по разработке данного сервиса. Суть задачи была проста - написать сервер с базовыми методами сохранения и отдачи файлов и сервисными методами по специфичной обработке файлов. Обмен данными (тело запроса, возвращаемые данные) я реализовал через json, про асинхрон идею упустил. По началу всё было хорошо, файлы не превышали размер нескольких мегабайтов, методы использовались редко. Но буквально через пару месяцев размеры файлов стали измеряться десятками мегабайт, количество запросов сотни в минуту. Сервис стал тормозить, возникали ошибки совместного доступа к файлам. «Никогда Штирлиц не был так близок к провалу». В этом кейсе я покажу как я переписал код сервиса.

     20.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Real-time аналитика в Учи.ру: как смотреть сложные метрики

Разным командам в нашей компании важно получать доступ к ключевым метрикам пользователей (количество сессий, DAU и другим) в режиме реального времени. Поэтому мы создали свою собственную систему real-time аналитики — быструю, простую и с удобным для нас функционалом. Сегодня я расскажу, как она устроена. 

     19.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Пакетное тестирование скоринговых моделей

Как проверить корректность расчета модели? Ну да, верно — скормить ей входные данные со строго определенными параметрами. Звучит не очень сложно, правда? А если факторов более полутора сотен? И часть из них оказывают влияние только при определенном взаимодействии с другими факторами? Такое количество вариантов входных данных вручную придется готовить не один день.

     19.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Как подключить платежную систему с Payments к Telegram

Telegram-боты позволяют решать самые разные задачи. С помощью них можно автоматизировать рабочие процессы. В статье показываем, как разработать бота для приема платежей и развернуть его на облачном сервере.

     19.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Тайна исчезающих сообщений: зачищаем Telegram в автоматическом режиме

На фоне новостио датасатанисте, который "клонировал" своих друзей в цифровое пространство, обучив LLM на 500.000 сообщений в групповом чате (на самом деле не только, но причину каждый найдёт для себя сам), будем кормить паранойю и пошагово разбираться, как же уничтожить свой "цифровой след" в мессенджере Telegram.

     19.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Создай своего ИИ-ассистента с помощью Streamlit

В последнее время эти ИИ, вроде ChatGPT, врываются прямо во все сферы. И вот благодаря увлечению Data Science можно использовать этих ботов, чтобы помогать людям, да ещё и пообщаться с ними на разные темы. ChatGPT действительно впечатляет. Он не только общается на разные темы, но еще и стихи сочинять умеет. Здорово, правда? Вот один из примеров, которые я получил недавно:

     18.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Проверяем ветхозаветную историю происхождения человечества от Адама и Евы с помощью популяционной модели

Помню, как несколько лет назад сидел на последнем ряду аудитории и слушал лекцию по теории эволюции. Тогда мне это было особенно интересно: каждый вечер я штудировал доклады Дробышевского, Соколова, Панчина, Гельфанда и других причастных к Антропогенезу. И в один день преподаватель сердито посмотрела в окно и спросила меня, как долго должны ходить по газону люди, чтобы образовалась тропа.

     18.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

403, 404 или 405. Разбираемся со статусами во ViewSet’ах DRF

Идея делать нормальный REST на Django – утопия, но некоторые моменты настолько логичные и нет одновременно, что об этом хочется писать. Ниже история про то, как мы сделали ViewSet от GenericViewSet и пары миксинов в DRF, покрыли это все тестами и получили местами странные, но абсолютно обоснованные коды ответов.

Текст может быть полезен новичкам (или чуть более прошаренным) в Django, дабы уложить в голове формирование url’ов и порядок вызова методов permission-классов. Ну а бывалые скажут, что все это баловство и надо было использовать GenericApiView.

     18.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Геопространственные технологий для управления паспортом медицинского участка

Всё началось с голосовых роботов. Во время борьбы с Ковидом наш коллцентр, носящий теперь гордое имя Центр телефонного обслуживания граждан 122, все чаще и чаще выстраивал очереди со временем ожидания ответа оператора свыше 30 минут. Нанять больше людей и начать стабильно укладываться в норматив ответа оператора менее 3-х минут не позволяли размеры помещения и фонда оплаты труда.

 

     17.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Полезные TreeMap визуализации для MSSQL, Postgres и MySQL

Я очень люблю визуализации. Человек лучше всего воспринимает информацию через образы. Для трех часто встречающихся баз (MSSQL, Postgres и MySQL) я смастерил плагины к проекту Bell, хотя этот код на Python можно использовать и отдельно. Поэтому для каждой визуализации я буду в скобочках писать имя файла из репозитория GitHub - вы можете этот файл вытащить и использовать его отдельно от проекта (для этого нудны минимальные модификации).

     17.04.2023       Выпуск 487 (17.04.2023 - 23.04.2023)       Статьи

Пишем полезный сервис на Python для получении ИНН

В этой статье хочу рассказать о том, как написать полезный сервис, для получения ИНН по персональным данным (паспортные данные). ИНН физического лица получаем с использование сайта https://service.nalog.ru/. Похожая функциональность, скорее всего, уже где-то и кем-то была реализована. Основная идея статьи - поделиться опытом работы с Python в части создания законченного проекта с использованием контейнера зависимостей, создания слушателей для RabbitMQ и работой с базой данных MongoDB. Работа с клиентами сервиса реализована через RabbitMQ в режиме непрерывного чтения очереди, отправкой результата в выходную очередь. Сервис будет жить в Kubernetes, что требует наличие liveness и readiness проб. Для этого используется веб-сервер.