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

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

     01.05.2023       Выпуск 489 (01.05.2023 - 07.05.2023)       Статьи

Создание DSL на Python с библиотекой textx

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

     01.05.2023       Выпуск 489 (01.05.2023 - 07.05.2023)       Статьи

Ускоряем Python в сто раз при помощи менее чем ста строк на Rust

Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.

Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.

     29.04.2023       Выпуск 488 (24.04.2023 - 30.04.2023)       Учебные материалы

Про книгу Энтони Шоу «Внутри CPython»

Обзор книги Энтони Шоу "Внутри CPython".

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

7 подходов к проверке атрибутов классов в Python

Проверка типов и проверка значений обрабатываются в Python гибким и неявным образом. В Python начиная с Python 3 появился модуль 1typing, который обеспечивает поддержку подсказок типов во время 2выполнения. Но для проверки значений не существует единого способа проверки.

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

Оптимизируем использование памяти в приложениях Python

Когда дело доходит до оптимизации производительности, чаще всего особое внимание уделяется скорости и активности использования ЦП. Гораздо реже кто-либо задумывается о потреблении памяти, конечно, пока не будут израсходованы мощности RAM. Есть много причин, по которым предпринимаются попытки лимитировать использование памяти – не только стремление избежать отказа приложения из-за ошибок, связанных с её исчерпанием. В этой статье будет исследовано, как находить в ваших приложениях на Python такие участки, где возникает перерасход памяти, проанализировано, по каким причинам это происходит. Наконец, мы научимся снижать использование памяти и сокращать отпечаток программы в памяти, пользуясь простыми приёмами и эффективными структурами данных.

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

За границей Hello World: полный гайд по разработке Telegram ботов с помощью Python и Aiogram 3. Часть 1

Нетипичный туториал по разработке Telegram-бота на Python и Aiogram 3. В отличие от большинства гайдов и туториалов про разработку ботов «для новичков», здесь будут рассмотрены все аспекты создания бота, от установки редактора кода до подключения оплаты и развёртывания на сервере. В первой части мы рассмотрим подготовку окружения, файловую структуру бота и напишем первый рабочий код бота.

     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)       Вопросы и обсуждения

Python Bytes: #332 A Python, a Slurpee, and Some Chaos

Очередной выпуск англоязычного подкаста Python Bytes

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

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

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

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

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

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