Обновить
603.93

Python *

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

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

Метаклассы Python. Подробное руководство

Уровень сложностиСложный
Время на прочтение24 мин
Количество просмотров8.7K

Привет Хабр! В данной статье я расскажу о там, как работают метаклассы в python, что конкретно они делают, где их можно использовать и почему чаще всего лучше этого не делать.

Данная статья скорее нацелена на начинающих авторов библиотек или любопытных читателей, которые просто хотят узнать что-то новое о Python.

Читать далее

Разработка Telegram-бота для мониторинга цен на Авито: пошаговое руководство

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

Привет, Хабр! Сегодня я расскажу о том, как я разработал Telegram-бота для мониторинга цен на Авито. Бот умеет отслеживать изменения цен в объявлениях и уведомлять пользователей об изменениях. В статье я поделюсь всеми этапами разработки, от проектирования до финальной реализации.

Читать далее

Как создать тестовый фреймворк с нуля на Playwright

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

Меня зовут Роман. Я SDET-специалист в компании SimbirSoft. В этой статье поделюсь своим опытом создания тестового фреймворка с нуля для одного из наших внутренних проектов. Материал будет полезен для начинающих или уже действующих специалистов в области тестирования, которые хотят больше узнать: 

– о построении процесса автоматизации с самого начала; 

– о сложностях, с которыми может столкнуться автоматизатор;

– об инструментах для подходящего решения поставленных перед ним задач.

Также рекомендую свою статью тем специалистам, которые уже обладают базовыми знаниями Python и Docker и стремятся углубить свои навыки в автоматизации тестирования.

Читать далее 🦾

Первый год free-threaded Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.9K

На прошлой неделе разработчики CPython выпустили CPython 3.14.0b1. А на этой неделе в Питтсбурге, штат Пенсильвания, начинается конференция PyCon 2025. Оба эти события знаменуют собой важную веху в делах, связанных с разработкой, выпуском и доведением до стабильного состояния релизов free-threaded Python (Python с поддержкой свободной многопоточности — с отключённым механизмом GIL).

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

Читать далее

Python vs Java: кто быстрее и дешевле

Время на прочтение10 мин
Количество просмотров18K

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

Возглавляя бэкенд-команду витрины в KION, я, Леша Жиряков, постоянно балансирую между скоростью вывода фичей и стабильностью работы системы. Сегодня решил перевести абстрактные технические дискуссии в конкретные цифры. А еще — поделиться расчетами, которые помогут принять экономически обоснованное решение: что выбрать для следующего проекта — Python или Java?

Читать далее

PYтокен: история о том, как питон съел ЭЦП. Часть 1

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

История о том, как я пытался реализовать подпись файлов с помощью сертификата на USB-устройстве, а дополнительно сделал шифрование и расшифрование директории.

Просвятиться

Разработка платформы дрона «Шмель» для обслуживания линий электропередач

Время на прочтение6 мин
Количество просмотров1.6K

Статья посвящена разработке автономной платформы дрона «Шмель», предназначенной для обслуживания линий электропередач (ЛЭП). Описаны ключевые задачи, такие как проверка тока, мониторинг состояния ЛЭП и установка ремонтных зажимов, с акцентом на их сложность и отсутствие физического взаимодействия с проводами. Рассматриваются аппаратные компоненты платформы, включая полётный контроллер, сервоприводы и датчики, а также программное обеспечение на базе фреймворка Clover и OpenCV для навигации с использованием ArUco-маркеров. Особое внимание уделено эволюции управления полётом, включая PID-регуляторы и траекторное слежение. Приведены примеры кода, результаты тестирования и решения проблем, таких как отсутствие автономности. Статья подчёркивает потенциал дронов в автоматизации обслуживания ЛЭП и предлагает пути для дальнейших улучшений, включая интеграцию новых датчиков и алгоритмов.

Читать далее

Шахматы вслепую — навык для Алисы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.8K

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

Тогда я решил написать навык для Яндекс.Станции, чтобы можно было играть в шахматы голосом.

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

За основу была взята библиотека python-chess и бинарник шахматного движка Stockfish:

Лошадью ходи

RAG‑агент для автоматизации инцидент‑менеджмента

Время на прочтение20 мин
Количество просмотров5.3K

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

Читать далее

Дивидендная доходность Индекса Мосбиржи: как рассчитать за 5 минут с помощью Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.3K

В 2024 году инвестиции в Индекс Московской биржи принесли небольшие 1,6%. Это существенно ниже средней доходности (16,8% за 25 лет истории). Но не все знают, что спасло ситуацию в 2024 от минуса. Оказывается, ценовая доходность индекса была отрицательной -6,9%. И только дивидендная доходность 9,1% позволила индексу «сохранить лицо». Такая поддержка со стороны дивидендов происходит не первый раз. Считаем дивидендную доходность в Python за несколько строк.

Читать далее

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

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

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

Читать далее

Молекулярное шифрование: полимерный пароль

Время на прочтение17 мин
Количество просмотров1.4K


Неустанно растущий объем информации требует создания новых носителей. Данная потребность уже давно привела к тому, что ученые с особым интересом рассматривают ДНК в качестве идеального (по мнению многих) носителя информации. Проблема в том, что доступ к данным на молекулах является крайне сложным, дорогим и длительным процессом. Ученые из Техасского университета в Остине (США) разработали новый метод кодирования информации в синтетических молекулах, который может сталь более выгодной и эффективной альтернативой биомолекул. Как именно работает данный метод, что лежит в его основе, и что удалось с его помощью сделать? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Slowpoke Finder: как я сделала CLI-инструмент для анализа медленных шагов в автотестах

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

Когда автотесты начинают тянуться как улитка, страдают все. CI медлит, разработчики косо смотрят на отчёты, а я вместо багов натыкаюсь на тайминги. Особенно это бесит в UI‑тестах — там каждый шаг может тормозить, но с ходу это не видно.

В команде периодически всплывал один и тот же вопрос:
«Почему один и тот же сценарий утром идёт дольше, чем вечером?»

Захотелось простой утилиты.

Никаких интеграций, серверов и плясок с бубном. Так появился Slowpoke Finder — маленькая CLI‑утилита и библиотека для анализа логов автотестов. Кидаешь ему JSON или HAR — он вытаскивает шаги и показывает, какие из них реально тормозят.

Читать далее

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

Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых

Время на прочтение5 мин
Количество просмотров1.9K

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

Именно поэтому мы адаптировали метод «Пяти почему» из Lean-методологии — и это изменило не только то, как наши ученики относятся к багам, но и качество кода, который они пишут.

Читать далее

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.7K

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных в Х5 Tech, успел за это время познакомиться с несколькими интересными проектами и подходами в области обработки данных, об одном из которых пойдет речь далее.

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

Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

Читать далее

Еще чуть-чуть быстрее ищем кратчайший путь на Python

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

Привет! На связи команда геоаналитики ecom.tech, мы строим модели машинного обучения на основе пространственных данных для задач ритейла в реальном времени, а также создаем промежуточные инструменты на базе методов прикладной геоаналитики. На наших технологиях работает Самокат и Мегамаркет. 

Например, наша команда решает задачу поиска оптимального расположения даркстора (место, где хранятся продукты, а также собираются заказы). Зона покрытия даркстора — радиус в пару километров, и количество их постоянно увеличивается. Мы хотим уметь размещать новый даркстор так, чтобы как можно больше людей получали заказы за минимальное время доставки.

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

Читать далее

Временные и постоянные ошибки

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K

При работе с внешними интеграциями мы часто реализуем базовую реакцию на ошибки. В большинстве случаев достаточно ограничиться response.raise_for_status(), а детальную обработку оставить на потом.

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

Что делать, когда сервер возвращает ошибку 503? А если превышен лимит запросов? А, допустим, истекло время ожидания и тому подобное? Мы неизбежно получаем длинный список исключений и обработчиков, которые необходимо реализовать, задокументировать и протестировать. Однако ситуацию можно улучшить…
Читать дальше →

PyCharm. Настройка и взаимодействие

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

Привет хабр! В этой статье хочу рассказать, как сделать PyCharm удобнее и покажу пример настройки некоторых вспомогательных инструментов, встроенных в IDE.

Я уже давно работаю в этой IDE и меня все в ней устраивает, обилие горячих клавиш, UI, множество плагинов, гибкость, встроенные интеграции, но почти на каждом созвоне с коллегами, если они показывают демонстрацию экрана, оказывается, что они не знают о той или иной настройке, горячей клавише или плагине, которые значительно улучшили бы их пользовательский опыт. Именно поэтому, хочу поделиться и с вами некоторыми фишками.

Дисклеймер: В этой статье будет ряд изображений.

Читать далее

To Docker or not to Docker? Вот в чём JupyterLab

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

Локальная работа в Jupyter-ноутбуках – неотъемлемая часть исследований и экспериментов нашего ML-отдела. Но из какой среды эти ноутбуки лучше запускать?
Мы пользуемся двумя вариантами: запуском из Docker-контейнера и запуском в изолированном локальном poetry-окружении.

В статье соберем минимальный сетап для работы с Jupyter-ноутбуками и ссылки на полезные ресурсы для ознакомления.

Читать далее

Гайд по Scikit-learn в 2025: собираем пайплайн, который не сломается

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров13K

Scikit-learn — это одна из основных Python-библиотек для машинного обучения. Её подключают в прикладных проектах, AutoML-системах и учебных курсах — как базовый инструмент для работы с моделями. Даже если вы давно пишете с PyTorch или CatBoost, в задачах с табличными данными, скорее всего, всё ещё вызываете fit, predict, score — через sklearn.

В 2025 году в библиотеку добавили несколько важных обновлений: доработали работу с пайплайнами, подключили полную поддержку pandas API, упростили контроль за экспериментами.

Мы подготовили гайд, как работать со scikit-learn в 2025 году. Новичкам он поможет собрать первую ML-задачу — с данными, моделью и метриками. А тем, кто уже использует библиотеку, — освежить знания и понять, что изменилось в новых версиях.

Почитать гайд →

Вклад авторов