Moscow Python
2.02K subscribers
142 photos
4 videos
2 files
895 links
Канал Python.ru и Moscow Python. Новости сообщества, события, статьи, интервью.

Чат: @moscowpythonconf
Download Telegram
tracecov: считаем покрытие АПИ через спецификацию OpenAPI

Вышла новая версия 0.4.0 https://github.com/wemake-services/django-modern-rest
И там мы выпустили поддержку tracecov. Инструмент новый, такого в других фреймворках я не видел.

В чем суть? Там мы считаем не "покрытие кода", а намного более важную метрику: "покрытие тестами нашего АПИ". Ну то есть буквально:
• Какие операции были вызваны?
• С какими телами и параметрами?
• Какие ответы получены по статусам?
• Какие схемы возвращены?
• Работают ли примеры из доки?

Так как мы используем очень строгую схему - у нас такой подход хорошо работает.
Мы интегрировали поддержку tracecov в наш dmr_client, который используется для всех интеграционных тестов. И schemathesis, который мы используем для property-based тестирования OpenAPI спецификации - тоже поддерживает такое.

Один запуск schemathesis позволяет добиться примерно 85+% покрытия всего АПИ. Вау! То есть: тесты можно почти не писать с таким походом.

В pyproject.toml можно добавить:


# Tracecov:
"--tracecov-format=text,html,markdown",
"--tracecov-fail-under-operations=100",
"--tracecov-fail-under-examples=100",
# TODO: set value to 100
"--tracecov-fail-under-parameters=90",
"--tracecov-fail-under-keywords=90",
"--tracecov-fail-under-responses=50",


И тогда тесты будут падать при низком покрытии АПИ. Вот куда можно развиваться, если у вас - как у нас - уже 100% обычного покрытия.

Одной строкой

• Добавили поддержку attrs для моделей
• Добавили msgpack как протокол для АПИ, он значительно быстрее json
• Добавили JsonLines для стриминга событий
• Переработали несколько апишек, стало значительно удобнее. Спасибо первым пользователям за обратную связь!

Обсуждение: Воспользовались бы такой метрикой? И какое покрытие вы считаете оптимальным? И почему 100%?

P.S. Выпустил большую статью про django-modern-rest на Хабру: https://habr.com/ru/articles/1017036 Если есть плюсики - буду очень благодарен за помощь в продвижении!

| Поддержать | YouTube | GitHub | Чат |
👍122🥰1🤯1😢1
20-го апреля мы встречаемся на 110-м митапе MoscowPython, который состоится в офисе компании K2Cloud (Волочаевская, 5к1, БЦ «КРОК»).

Нас ожидает 3 доклада:
- Артём Тарасов (Альфа-Банк, Senior Engineer). Менторство как допинг: Как прокачать свои хард-скиллы, обучая других
- Алёна Тямейкина (Островок.ру, Python Developer) Автоматизации процессов разработки
- Секретный (пока) доклад :)

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3902512/

Онлайн-трансляция пройдёт на moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2Cloud.

Внимание! Для прохода на митап не забудьте паспорт!

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
👍42🔥1
Forwarded from Елизавета Грейм
В ближайшую пятницу в 14:00 (по мск) обсудим новости марта в прямом эфире Moscow Python Podcast 🎙

Новостями выпуска поделимся в следующем анонсе.
Ведущие: Михаил Корнеев и Григорий Петров

📍Когда и во сколько: 3 апреля в 14:00 по Москве.
Подключайтесь к удобной площадке YouTube / Rutube / VK Видео

➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🥰2🤯2😡1
Выложили видео выступлений с 109-го митапа, который проходил в Школе 21.

Напомню, что на встрече было 3 доклада:
- Георгий Дьячков (Альфа банк, Главный разработчик). Векторные базы в агентной архитектуре и как изменятся вопросы на собеседованиях в 2026
- Георгий Мартиросов (Продуктовый консультант, expremiental). Как с помощью упорства и $20 разрабатывать hardware
- Евгений Блинов (The Mutating Company) Ближайшее будущее мутационного тестирования на Python

Митап прошёл при поддержке Geekfactor.io, Evrone, Learn Python, Школа 21.

Смотрите тут: https://www.youtube.com/watch?v=8pmCoNOfmf4&list=PLv_zOGKKxVphbMt6R0dUvvVyrtIyJ1xVY&index=1&t=1s
🔥4👍2🎉21🥰1😡1
Forwarded from Елизавета Грейм
Напоминаем, что завтра в 14:00 (по мск) обсудим новости марта и ответим на ваши вопросы в эфире Moscow Python Podcast 🎙

А вот и список новостей, которые обсудим:
🟤JIT-компилятор в Python 3.15 снова в строю;
🟤OpenAI объявила о покупке Astral;
🟤Сообщество JazzBand объявило о закрытии;
🟤Первый публичный релиз Django Modern Rest (0.1.0);
🟤Defense in Depth: практическое руководство по безопасности цепочки поставок Python;
🟤The Slopsource Is Here — новый взгляд на генерацию кода и источники данных для ИИ.

Ведущие: Михаил Корнеев и Григорий Петров

📍Когда и во сколько: 3 апреля в 14:00 по Москве.
Подключайтесь к удобной площадке YouTube / Rutube / VK Видео

➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉51🔥1🥰1😡1
Forwarded from Александр
Вопрос для python-разработчиков👇

Когда вы в последний раз находили полезные контакты не в интернете, а вживую?

17-18 апреля в Иннополисе пройдёт Синтез | Merge Татарстан 2026.

Вот уже пятый год профессиональная конференция объединяет ИТ-сообщество со всей России.

Да, там будут доклады (в том числе по backend-разработке, AI & ML, управлению проектами и десяткам других тем).

Но главная ценность, за которой обычно едут на Merge разработчики, другая:

— живое общение с коллегами из сотен компаний и десятков регионов;
— обсуждение реальных кейсов без фильтров;
— знакомства, которые потом превращаются в проекты, команды и связи.

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

Если планировали выбраться на крупное IT-событие этой весной — это отличный вариант. Тем более, что конференция ещё и дарит возможность познакомиться с Иннополисом, первым наукоградом, построенным специально для ИТ-специалистов.

👉Подробнее и билеты — на сайте.

По промокоду MERGEPYTHON действует скидка 15%.
Forwarded from Irina
Геймтон DatsSol от DatsTeam 17-18 апреля!🌷

🌌DatsSol – это пространство, где из идей рождаются целые миры, а каждое решение – шаг к чему-то большему. Готовьтесь к динамике, экспериментам и неожиданным поворотам. О дивный новый мир!

ПОДРОБНЕЕ НА ЛЕНДЕ

Призы для каждого участника команды-победителя:
1️⃣ место – Apple MacBook Air 13
2️⃣ место – AirPods
3️⃣ место – Умная колонка Яндекс Станция Мини

\ онлайн
\ команда 1-3 участника
\ от 18 лет
\ любые технологии
\ участие бесплатно

Если возникнут сложности – мы рядом @DatsHackathonsBot

👇👇👇

РЕГИСТРАЦИЯ ЗДЕСЬ
1😢1
Forwarded from Arina Nikolaeva
MWS Meetup #2. Онлайн-встреча Python-разработчиков.

РЕГИСТРАЦИЯ
Приглашаем присоединиться к встрече Python-разработчиков.

Мы продолжаем делиться экспертизой профессиональных сообществ MWS и на очереди встреча по ИИ в разработке на Python.

Вы сможете прокачать практические навыки на воркшопе по Python-разработке с применением AI-агента, а также обсудить вайб-кодинг —ИИ ускоряет, или все-таки тормозит процесс?

Присоединяйтесь 15 апреля в 15:00!
ПРОГРАММА

Событие будет полезно Python-разработчикам, аналитиками другим ИТ-специалистам, кто интересуется применением ИИ в разработке.
👏1
Коллеги, всем привет!

Сейчас бум AI и в эту сферу инвестируются баснословные суммы, а компании, которые разрабатывают AI-продукты являются очень привлекательными для кандидатов.

😎 Нам захотелось узнать из первых уст, как же в действительности нанимают AI стартапы, поэтому мы пригласили к нам на интервью Станислава Змиева Head of Engineering американского AI-стартапа Sema.

🎙Что обсудили:

🌟 Как происходило формирование портрета кандидата в стартапе с нуля;
🌟Автоматизацию с помощью ИИ в найме;
🌟Этап лайв-кодинга: что проверят и на что обращают внимание в первую очередь;
🌟 Какие есть ред флаги при процессе найма у кандидатов;
🌟Какие софт-скиллы важно увидеть на этапе интервью;
🌟 Какие ошибки чаще всего совершают кандидаты на техническом этапе;
🌟 Конечно же, фрод и еще много всего интересного :)

🗣 Ведущая: Василиса Баулина, HRD Geekfactor.

Делимся ссылками на интервью:

➡️ Смотреть на YouTube
➡️ Смотреть на VKВидео
➡️ Смотреть на Rutube

Приятного просмотра! 🩵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3😢1
Напоминаем, что 20-го апреля мы встречаемся на 110-м митапе MoscowPython, который состоится в офисе компании K2Cloud (Волочаевская, 5к1, БЦ «КРОК»).

Нас ожидает 3 доклада:
- Артём Тарасов (Альфа-Банк, Senior Engineer). Менторство как допинг: Как прокачать свои хард-скиллы, обучая других
- Алёна Тямейкина (Островок.ру, Python Developer) Автоматизации процессов разработки
- Адриан Макриденко (ГК Астра Линукс, разработчик серверной части). Токены авторизации: почему JWT легко использовать неправильно и как это исправляет PASETO?

Читайте подробности и регистрируйтесь тут:
https://moscowdjango.timepad.ru/event/3902512/

Онлайн-трансляция пройдёт на moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2Cloud.

Внимание! Для прохода на митап не забудьте паспорт!

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
6👍2🔥2🙏1
Друзья, самым лучшим курсам по Python - Learn Python от нашего сообщества - нужна помощь по созданию коротких роликов на тему программирования для нашего канала. Если вы хотите присоединиться к проекту, пожалуйста, заполните формочку - мы будем рады всем откликам!

https://forms.gle/r3LixCaRWvf7U6Hn8
👍2🤯21🎉1🏆1
Друзья, уже сегодня в 19 часов состоится наш 110-й митап, который пройдёт в офисе компании K2Cloud (Волочаевская, 5к1, БЦ «КРОК»).

Нас ожидает 3 доклада:
- Артём Тарасов (Альфа-Банк, Senior Engineer). Менторство как допинг: Как прокачать свои хард-скиллы, обучая других
- Алёна Тямейкина (Островок.ру, Python Developer) Автоматизации процессов разработки
- Адриан Макриденко (ГК Астра Линукс, разработчик серверной части). Токены авторизации: почему JWT легко использовать неправильно и как это исправляет PASETO?

Если вы не сможете прийти, смотрите онлайн на moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, K2Cloud.

Внимание! Для прохода на митап не забудьте паспорт!

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
🔥42🤯1
Нерегулярная рубрика "посмотрите, что творится!". Как вы знаете, рынок найма http клиентов полностью сломан! Сегодня мы постараемся решить данную проблему.

zapros - modern and extensible python http client

Звезды ставить сюда: https://github.com/kap-sh/zapros
Документация: https://zapros.dev
Сообщество: @pythonzapros

Недавно мне написал Карен Петросян (кстати, заходите к нам в чат, где все события и происходят) – топ3 мейнтейнер библиотеки HTTPX по количеству коммитов, автор httpx-aiohttp и hishel. И говорит: я сделал новый крутой клиент для HTTP для питона. И я такой: офигеть! Дайте два!

В чем фишка?

А ситуация на рынке такова. requests морально устарел 10 лет назад. На фоне умирающего HTTPX, у которого не было релиза больше года, и автор которого не хочет релизить новые версии и даже заблокировал возможность создавать новые задачи, автор Zapros попытался написать аналог, способный не только заменить HTTPX, но и предложить кучу новых интересных фич.


from zapros import AsyncClient

async def main() -> None:
async with AsyncClient() as client:
response = await client.get("https://httpbin.org/get")

print(response.status, response.json)


Главная особенность Zapros - его дизайн: вместо того чтобы зависеть от конкретных имплементаций транспортного уровня, Zapros работает с абстракциями, благодаря которым он может поддерживать:

- HTTP/1, HTTP/2 и HTTP/3 - независимость от транспортного уровня позволяет использовать интерфейс Zapros поверх любых транспортных реализаций.
- Rust - поддерживает транспортную реализацию поверх Rust-библиотеки reqwest
- Работа в браузере (через Pyodide) - ещё раз, транспортный уровень `Zapros`-а полностью независим от самого клиента, и из коробки поддерживает работу в браузере, используя fetch API.

Идея независимости от транспортного уровня появилась у автора во время работы над проектом httpx-aiohttp, который был создан, чтобы «спасти» HTTPX от багнутой реализации транспортного уровня, подменяя его на aiohttp. В итоге проект вырос в полноценную библиотеку, используемую в SDK от OpenAI и Anthropic.

Zapros имеет всего лишь 3 зависимости: h11, pywhatwgurl и typing-extensions. Поддерживает Python 3.10 и выше.

Уделяя особое внимание расширяемости, Zapros был спроектирован с удобным механизмом расширения клиента с помощью миддлварей. Из коробки идут миддлвари для:

- Моков - позволяет мокать запросы без необходимости в сторонних библиотеках.
- Кеширования - позволяет кешировать запросы в памяти или на диске (работает поверх библиотеки `hishel`).
- Ретраев - позволяет автоматически повторять запросы при неудаче с помощью настраиваемой логики.
- Кук - автоматически управляет куками.
- Кассет - позволяет записывать и воспроизводить HTTP-взаимодействия, что полезно для тестирования и отладки (аналог vcr).
- Редиректов - автоматически обрабатывает HTTP-редиректы согласно стандарту HTTP (RFC 9111).


from zapros import CacheMiddleware, Client, RetryMiddleware

with (
Client().wrap_with_middleware(
lambda next: RetryMiddleware(next) # wrap with the retry middleware
).wrap_with_middleware(
lambda next: CacheMiddleware(next) # wrap with the cache middleware
) as client
):
# automatically retries failed requests and caches responses
client.get("https://zapros.dev")


Zapros не принуждает использовать ни одну из данных миддлварей: сам класс клиента отвечает только за отправку HTTP-запросов, всё остальное — уже миддлвари, которые вы можете использовать по своему усмотрению. И хотя основные миддлвари написаны так, чтобы покрывать большинство случаев использования, вы можете использовать и свои кастомные решения.

Zapros поддерживает как синхронный, так и асинхронный интерфейс, и использует улучшенную версию механизма unasync, который используется в httpx для поддержки обоих интерфейсов.

Обсуждение: Каким HTTP клиентом пользуетесь вы? Какие у вас с ним проблемы? Чего не хватает? Какой Python HTTP клиент считаете лучшим на данный момент?
🔥109👍7🤔1
⭐️Вышел новый рейтинг TIOBE по языкам программирования, и на первый взгляд там всё предсказуемо: Python по-прежнему на первом месте, за ним C, C++, Java.

Но важно понимать, что такие рейтинги не отражают напрямую ситуацию с наймом, они показывают скорее масштаб и “инерцию” рынка: сколько специалистов, обучающих материалов и упоминаний у языка.

Для работодателей и соискателей это означает одну простую вещь: популярность языка сама по себе мало что гарантирует.

Python может быть №1, но сильных специалистов по-прежнему немного, потому что рынок давно сегментирован - backend, AI, data и другие направления требуют разного опыта.

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

Подробнее об этом можно почитать статью в нашем блоге.

😎 <Geekfactor> - Найм в IT

🤓 <Geekfactor> - Карьера в IT
Please open Telegram to view this post
VIEW IN TELEGRAM
1🎉1🙏1💯1
Forwarded from Елизавета Грейм
Завтра в 14:00 (по мск) обсудим новости апреля в прямом эфире Moscow Python Podcast 🎙

Не изменяем традиции и проводим выпуск в первую пятницу месяца.
Ведущие: Михаил Корнеев и Григорий Петров

📍Когда и во сколько: 1 мая в 14:00 по Москве.
Подключайтесь к удобной площадке YouTube / Rutube / VK Видео

➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Историческое возвращение Moscow Python в Яндекс произойдёт 19-го мая. Мы встречаемся в офисе Яндекса на нашем 111-м митапе. И для такого случая мы подготовили особую программу. :)

Нас ожидают:
- Сергей Буткин (Yandex Infrastructure, Руководитель группы разработки). Доклад «Как ускорить некоторые операции Cython’ом с помощью AI»

- Круглый стол «AI в разработке: очень хороший автокомплит или роботы нас заменят?»
Модератор: Георгий Мартиросов (EXPREMIENTAL)
Участники: Максим Богуславский (ООО "Альфа-Функция" Основатель, Генеральный директор), Денис Аникин (Райффайзенбанк, Техлид), Алексей Жиряков (ПАО Сбербанк, Исполнительный директор, Дивизион платформы генеративного ИИ)

Читайте подробности и регистрируйтесь тут: https://forms.yandex.ru/surveys/13848821.1f5b08598a290dbe8f655d22c87d63b85bff79d4/

Онлайн-трансляция пройдёт на moscowpython.ru

Митап проходит при поддержке Geekfactor.io, Evrone, Learn Python, Яндекса.

Заявки на доклады на следующих митапах подавайте на https://bit.ly/mp-speaker
🔥155👍2😁1
Moscow Python
Историческое возвращение Moscow Python в Яндекс произойдёт 19-го мая. Мы встречаемся в офисе Яндекса на нашем 111-м митапе. И для такого случая мы подготовили особую программу. :) Нас ожидают: - Сергей Буткин (Yandex Infrastructure, Руководитель группы…
Замена в программе нашего митапа 19-го мая - вместо доклада Сергея Буткина прозвучит доклад
«Как мы изобретали Temporal, пытаясь просто создать приложение» (Андрей Ларин, Yandex Infrastructure)

Мест на митап, к сожалению, не осталось - если не успели зарегистрироваться, смотрите онлайн на moscowpython.ru
3👍2👎1😭1
Всем привет! Мы планируем провести специальный стрим на нашем Youtube-канале с ребятами из ПроИТ Феста (proitfest.ru). И хотим поинтересоваться у вас, на какую тему вам было бы интересно посмотреть стрим?
Anonymous Poll
48%
Про хардкор Python, конечно
28%
Про ИИ в разработке
33%
Общая температура по рынку IT
3%
ТОП-5 тем Летнего Феста
11%
Про софты/психологию
20%
Про поиск работы
9%
Про менеджмент
22%
Про карго-культ в IT
52%
Про свидания айтишников