Обновить
8K+
2

Senior Python Developer

6
Рейтинг
2
Подписчики
Отправить сообщение

Django-style фильтры поверх SQLAlchemy: зачем я написал python пакет sqlalchemy-query-manager

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

TL;DR: я сделал sqlalchemy-query-manager — небольшой слой поверх SQLAlchemy для типовых backend-запросов. Он не заменяет SQLAlchemy, а добавляет более компактную запись для частых операций: фильтры в стиле number__gte=100, условия через Q, фильтрацию по связанным моделям, eager loading, CRUD helpers, агрегаты и просмотр итогового SQL. Идея в том, чтобы оставить SQLAlchemy в основе, но убрать повторяющийся код там, где запросы становятся слишком большими.

Читать далее

Как тестировать HTTP-запросы к внешним сервисам в Python-приложениях: requests-mock, pytest-httpx и FastAPI

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели8K

Не всегда стоит патчить ответ от внешнего HTTP-сервиса через mocker.patch. В таких тестах приложение возвращает ожидаемый ответ, но важная часть логики остаётся непроверенной: какой URL собрал клиент, каким методом ушёл запрос, какое тело было отправлено и как обработался ответ внешнего сервиса. В статье показываю другой подход: мокать не метод клиента, а сам внешний HTTP-сервис. Для клиентов на requests используем requests-mock, для клиентов на httpx — pytest-httpx. Так тесты остаются быстрыми и без реальной сети, но при этом проходят через настоящий код клиента и позволяют проверять состояние фейкового внешнего сервиса, тем самым улучшая качество тестов.

Читать далее

Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели14K

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

Читать далее

Как использовать GitHub Actions и настроить интеграцию с PyPI для Python-проектов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.6K

Когда я создавал свой первый Python-пакет я столкнулся с интересной задачей:как настроить CI/CD в GitHub так, чтобы при отправке новых изменений ничего не ломалось, а код автоматически публиковался в PyPI.

Обычно, чтобы проверить любой коммит, попадающий в master-ветку через pull request, необходимо запускать тесты. Кроме того, полезно использовать линтеры для проверки стиля кода, особенно если над проектом работают несколько разработчиков.

В этой статье я расскажу как все это настроить в Github, чтоб оно выполнялось автоматически.

Читать далее

Как опубликовать Python-пакет в PyPI с помощью Poetry

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.1K

Как создать и подготовить пакет к публикации с помощью Poetry и обойти подводные камни которые могут помешать это сделать.

Читать далее

Информация

В рейтинге
1 168-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Python
Git
Docker
REST
RabbitMQ
PostgreSQL
SQL
Английский язык
Django
FastAPI