Обновить
780.79

Python *

Высокоуровневый язык программирования

Сначала показывать
Период
Уровень сложности

Astral выпустила pyx: разбираемся, какие боли он закрывает

Время на прочтение4 мин
Охват и читатели7.6K

Привет! На связи  Леша Жиряков, руководитель направления backend-команды витрины онлайн-кинотеатра KION. Сегодня хочу рассказать о горячем пирожке от Astral Software. Если вы следите за экосистемой Python, то наверняка знаете Astral по их хитам вроде ruff и uv. Теперь они выпустили pyx — реестр пакетов для Python, который обещает упростить жизнь разработчикам, особенно в проектах с машинным обучением и большими зависимостями. Давайте разберемся, что это за проект такой, почему стоит обратить на него внимание и как его использовать на практике.

Читать далее

TY — не thank you, а быстрый type checker для Python

Время на прочтение7 мин
Охват и читатели11K

Всем привет! Меня зовут Иван, я программирую на Python, а в свободное время пишу для блога МТС. В прошлый раз поделился опытом, как я осваивал Go и с чем у меня были сложности. Спасибо всем, кто читал и комментировал! Сегодня хочу обсудить мегабыстрый инструмент для проверки типов данных Python — ty: как он устанавливается и используется, какие есть правила и нюансы, а еще посмотрим, как можно его применять. Приступим!

Читать далее

Tail-calling: разбираемся в новом интерпретаторе в CPython

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

В последнее время в моём инфополе появилось много шума вокруг нового типа интерпретатора в Python: tail-calling. Я посмотрел PR на Github, из которого понял, что [[clang::musttail]] должен ускорить рантайм на 5%. 

Ещё я почитал Соболева, но понял только то, что эта инструкция генерирует вызов метода в asm-коде как jmp, а не call, то есть экономит один стэк-фрейм — посмотреть можно тут. Но почему эти инструкции в данном случае эквивалентны и сработают в CPython — непонятно. Так что давайте разбираться вместе!

Читать далее

Мало кто знает, но в Python есть switch/case: Гид по структурному сопоставлению (match/case) не только для версии 3.10+

Время на прочтение6 мин
Охват и читатели20K

Разбираем мощь match/case в Python: от базового синтаксиса до распаковки JSON и эмуляции в старых версиях.

Читать далее

Мы добавили поддержку ещё 19 языков России и СНГ в проект silero-stress

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

Мы недавно писали на Хабр о нашей библиотеке silero-stress для простановки ударения в обычных словах и омографах. Теперь у нашего проекта silero-stress вышла версия v1.2, в которую вошло следующее:

Что вошло?

Новый релиз публичного детектора голоса Silero VAD v6

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

На Хабре уже было аж 3 статьи про развитие нашего публичного детектора голоса Silero VAD (последняя тут). А вот что стало лучше в этот раз:

Хочу узнать!

Подводные камни при работе с файлами в Linux с примерами на Python

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

Работа с файлами в Python кажется простой — open, read, write. Но на практике, особенно в системах с высокими требованиями к отказоустойчивости, стабильности и логированию, за банальными строками кода может скрываться целый мир проблем.

Читать далее

Линейная алгебра для нейросетей: векторы на практике

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

Данная статья посвящена основе основ нейронауки — линейной алгебре. Если вы когда-либо планируйте изучать искусственные нейронные сети (и не только), то вам необходимо начать именно с этого. Причем не важно, собираетесь ли вы заниматься фундаментальными исследованиями (Data Science) или просто лепить модели в продакшн на конвейере (ML Engineering), вы обязаны знать их математику хотя бы поверхностно. Любые настройки, дообучение и применение даже готовой модели, требуют понимания основ. А по сему данное знание, как минимум, не будет избыточным.

Материал рассчитан на новичка. Если вы знаете школьную математику, то сможете освоить и мой курс. В будущем я напишу статью о линейном представлении нейросетей, где мы адаптируем полученное знание под прикладные задачи, напишем некоторые слои на Python и построим настоящую модель!

В этой статье:
* Понятие вектора;
* Векторизация данных;
* Умножение на скаляр;
* Сложение векторов;
* Норма вектора;
* Скалярное умножение;
* Векторное умножение;
* Практика с кодом;
* Домашняя работа.

Все будет объяснено на красочных примерах в игровой форме. Ничего сложного. А в конце вас ждет самостоятельная практика с кодом.

Приятного чтения!

Читать далее

FastAPI: Хватит писать всё в main.py. Гайд по нормальной структуре для новичков

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

Написать API на FastAPI легко. Написать поддерживаемое API — сложнее. Часто новички (и не только) игнорируют структуру проекта, сваливая всё в кучу или создавая циклические зависимости.

В этой статье разбираем эталонную структуру REST API сервиса на стеке 2025 года:

• Уходим от main.py к модульной системе через APIRouter.
• Разбираем, почему нельзя путать Pydantic Schemas и SQLAlchemy Models (и как их подружить через from_attributes).
• Настраиваем честную асинхронность с aiosqlite и Dependency Injection.
• 5 практических задач для закрепления материала.

Читать далее

Docker для самых маленьких: упаковываем Python-бота за 10 минут

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

Хватит запускать ботов кнопкой Run в PyCharm! Пора осваивать промышленные стандарты.
В этом туториале я простым языком объясняю, как работает Docker и зачем он нужен Python-разработчику. Мы возьмем простого Telegram-бота, напишем для него конфиг, настроим .dockerignore и запустим в изолированном контейнере. Идеально для тех, кто давно хотел разобраться с Докером, но боялся сложных инструкций.

Читать далее

Как мы превратили цифровое ТВ в радар

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

Как мы превратили цифровое ТВ в радар

Open Source проект по мониторингу воздушного пространства на SDR

Зачем вообще делать радар из телевизора?

Традиционные радиолокационные системы (РЛС) — это огромные антенны, киловатты мощности, разрешения на частоты и бюджеты уровня «военного отдела». Нам же хотелось видеть небо, не нарушая ни законов физики, ни законодательства.

Так родилась идея собрать пассивную когерентную локацию (PCL) — систему, которая ничего не излучает, а просто слушает уже существующие сигналы в эфире.
FM-радио, LTE, цифровое ТВ — всё это мощные «осветители», которые и так покрывают территорию. Почему бы не использовать их?

Мы выбрали сигнал DVB-T2 (546 МГц) — стабильный, мощный, и что особенно приятно — с известной структурой (OFDM).

Результат? Получился радар без передатчика, который можно запустить хоть на балконе. И да, всё это — на полностью open source стеке.

Читать далее

«Манускрипт. Распознать нельзя забыть: как мы научили нейросети читать рукописи XIX века»

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

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века

Мы обучили свою OCR-модель распознавать дореформенную кириллицу, нестандартные почерки и сложные сканы. Всё — на собственных данных, с нуля. В статье — как мы это сделали и ссылки на репозиторий с кодом.

Открыть рукопись

Собираем ANPR-систему на Python: от YOLOv8 и кастомного OCR до INT8-квантизации

Время на прочтение13 мин
Охват и читатели16K

Привет, Хабр!

Распознавание автомобильных номеров (ANPR) — задача не новая. Существует множество коммерческих решений и open-source библиотек. Но что, если стандартные инструменты не не подходят? А что, если нам нужна система, которая будет молниеносно работать на обычном CPU, без дорогих видеокарт?

Недавно я столкнулся именно с такой задачей. Вместо того чтобы просто "склеить" готовые решения, я решил пройти весь путь ML-инженера от начала до конца: от анализа данных до обучения кастомных SOTA-моделей и их финальной оптимизации. В этой статье я поделюсь всем процессом, кодом, результатами и проблемами, с которыми пришлось столкнуться.

Читать далее

Ближайшие события

Что такое эмбеддинги и как с ними работать. Вводная для начинающих

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

В этой статье будет рассказано об эмббедингах и методах работы с ними. Расскажу немного математики и приведу много примеров на Python.

🔥 Начинаем? 🔥

Год с Dishka: какой он — модный DI-контейнер?

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

Привет, Хабр, меня зовут Юрий, я уже год использую хайповый IoC‑контейнер dishka в python-проекте и хочу немного поделиться опытом эксплуатации.

Мой проект — движок для городской ночной поисковой игры «Схватка» («Энкаунтер» или «Дозоры»). Проект полностью open source.

Читать далее

От vibe coding к Spec-Driven Development: как приручить скорость ИИ и довести проект до продакшена

Время на прочтение8 мин
Охват и читатели12K

Мы все видим, как ассистенты и агенты меняют правила игры. То, что недавно называли «умной IDE» с подсказками, рефакторингом и статическим анализом, сегодня лишь разминка перед сбором функциональности. Ассистенты и агенты могут пройтись по десяткам файлов, обновить тесты и даже оформить базовую документацию. Но вместе с бешеной скоростью генерации пришёл и хаос. 

Поговорим о том, как не дать «вайб-кодингу» развалить ваш продакшен и почему Spec-Driven Development (SDD) — это наш новый «компилятор», которому нужно доверять.

Читать далее

Python: Почему [] в аргументах функции — это ловушка?

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

«Почему моя функция "помнит" данные из прошлого вызова?» — этот вопрос задает почти каждый, кто начинает глубоко изучать Python. На первый взгляд, пустой список в аргументах кажется логичным дефолтом, но на практике он превращается в мину замедленного действия. В этой статье мы разберем механику работы атрибута defaults, поймем разницу между временем определения и выполнения, и выясним, почему None — это не просто отсутствие значения, а спасение вашего кода от непредсказуемых багов.

Читать далее

Как я писал книгу «Python для инженерных задач»

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

Пост о том, как появилась идея написать книгу «Python для инженерных задач», и о том, как эта идея реализовывалась.

Читать далее

Компилируем Python так, чтобы он работал везде

Время на прочтение18 мин
Охват и читатели14K

Это история о том, как написать компилятор Python, генерирующий оптимизированные ядра и при этом позволяющий сохранить простоту кода.

Читать далее

Пишем свой классификатор AI-generated статей для Хабра за ночь

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

Изобретаем собственный велосипед для детекции AI-generated текстов на Хабре, используя SBERT классификатор. Нет, это не сложно :-)

Читать далее