Как стать автором
Поиск
Написать публикацию
Обновить
526.58

Python *

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

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

Как одной математической формулой определить цвет ячейки на рулетке?

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

Однажды моя девушка проходила курс по основам python. Она показала мне небольшую задачку на использование if-else: "по номеру кармана (ячейки) на рулетке определите его цвет".

Казалось бы, все довольно просто — используем условные операторы и не знаем проблем! Но можно ли вывести математическую формулу которая будет работать для всех ячеек? В этой статье я описал поиски такой формулы!

Читать далее

Долгожданный релиз Airflow 3

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

Привет, Хабр! Я Георгий Новожилов, инженер данных в «ДАР» (ГК «КОРУС Консалтинг»).

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

22 апреля 2025 года компания Apache выпустила новую версию своего оркестратора, которая была в разработке последние 4 года. Среди ключевых изменений — новый интерфейс, обновлённая и защищённая архитектура, а также стабильный интерфейс разработки.

В этой статье предлагаю рассмотреть, какие ещё нововведения нам привезли в масштабном обновлении Apache Airflow 3.0.0.

Читать далее

1С: Кабинет сотрудника: Как мы чинили то, что называлось «готовым продуктом»

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

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!

Сегодня я расскажу вам историю о том, как я провёл полгода в тесных объятиях «1С: Кабинет сотрудника» на новой технологии 1С:Элемент — системы, которая обещала сделать кадровый документооборот простым, как бутерброд с колбасой. Но, как выяснилось, бутерброд этот оказался с сюрпризом… то ли огурцом, то ли гвоздём.

Читать далее

Создаем Telegram-бота для генерации случайных пользовательских данных на Python

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

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

Читать далее

Обучаемся основам компьютерного зрения с помощью Lichee Pi 4A и Python-библиотеки Pillow

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

Привет, Хабр! На связи команда регионального научно-образовательного центра «Искусственный интеллект и анализ больших данных» при НГТУ им. Р. Е. Алексеева. При поддержке компании YADRO мы изучаем архитектуру RISC-V и компьютерное зрение, чтобы внедрить результаты в учебный процесс.

Предлагаем вместе с нами проверить, на что способен одноплатный компьютер Lichee Pi 4A в задачах обработки изображений, несмотря на его ограниченные ресурсы. А заодно — получить базовые навыки по разработке систем компьютерного зрения. Пройдем путь от настройки системы до отслеживания кликов по картинке и распознавания объектов с моделью YOLOX.

Читать далее

Некоторые неочевидные особенности Django ORM (filter и exclude)

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

TLDR: В статье рассказывается о некоторых особенностях Django ORM, а именно, как при неправильном использовании некоторых встроенных методов (filter(), exclude()) можно незаметно, но очень больно, выстрелить себе в ногу при работе со связями many-to-many и one-to-many (связь, обратная к FK). Статья может быть полезной не слишком искушенному в тонкостях Django ORM разработчику.

Интересно...

Docker Registry на Python с нуля

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

Всем привет! В современном мире разработки docker является одним из краеугольных камней эргономики рабочего пространства разработчика, наряду с git, разного рода IDE и редакторами, а для кого‑то — и GPT. И, хоть в самом по себе docker нет ничего такого уж уникального (LXC, CRI‑O, чистый containerd, различные легкие и средние виртуалки, бессерверные среды, для особых ценителей — chroot. Тысячи их), он подкупает удобством использования и развесистой экосистемой — поддержка Docker есть в большинстве редакторов кода и IDE, про него написаны многочисленные книги, статьи и туториалы от индусов, а по его реестрам (от Docker Hub до локальных реп на гитлабе) удобно разложен практически весь существующий на планете софт.

Вот о реестрах (registry) Docker и хочется сегодня поговорить.

Сам по себе реестр — это просто REST‑сервис и файловое хранилище. Образы прилетают в реестр в виде бинарных слоев (количество и размер которых зависит от Dockerfile, по которому собирался образ) и простого JSON‑файла манифеста.

Читать далее

Генерация карт Таро при помощи OpenAI модели GPT-Image-1

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

Я решил сделать уникальную колоду карт Таро. Заказывать их у фриланс-художников дорого: каждая карта стоит от 5 USD, так что для полной колоды из 78 карт это выходит 390 USD. Перебрав разные генераторы изображений, я остановился на модели GPT-Image-1 от OpenAI, поскольку она выдаёт максимальное качество и минимальный процент ошибок. В среднем генерация одной карты занимает около минуты. Создание одной колоды обошлось мне в $25. В итоге я сгенерировал три колоды с уникальными стилями и потратил на это в общей сложности 75 USD.

Читать далее

Тестовые идентификаторы: как и где расставлять правильно

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

По фактам: почему CSS и XPath — путь в ад, а test-id — спасение. В статье — реальные советы, как договориться с командой, внедрить test-id и писать автотесты, которые не разваливаются каждую пятницу.

Читать далее

Отбор акций Мосбиржи для Backtrader: загрузка истории через библиотеку Игоря Чечета и её поквартальный анализ на Python

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

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

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

Ликвидность — это не про «красиво на графике», а про то, как на самом деле исполняются сделки, насколько проскальзывает цена и как часто ваши заявки останутся без исполнения. Здесь нам поможет Игорь Чечет — автор библиотек AlorPy, TinkoffPy и FinamPy, размещенных на GitHub, которые дают удобный способ подключиться к API этих трёх брокеров из Python. Эти инструменты и библиотека‑обертка — фактически мост между Backtrader и живым рынком.

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

Ваша критика или поддержка идей, приведённых в статье приветствуется.

Ищем ликвидность

Terminode или Новичок пишет «терминал» (часть 2)

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

В прошлой своей статье я рассказывал о том, как начинал создавать свой якобы «терминал». Её заметило две с лишним тысячи человек, что для меня уже было каким‑то неплохим числом. Некоторые писали мне различные советы, кто‑то давал критику по статье. И вот, спустя небольшое время работы я снова пишу статью о своем «терминале» под именем Terminode. Вот она вторая часть «новичка пишущего терминал».

А что далее?

Новый лучший способ форматирования строк в Python

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

Привет, Хабр! Приближается релиз Python 3.14, который несет нам множество нововведений. Среди них — новый способ форматирования строк. Давайте посмотрим, что из себя представляют t-строки, на что они годятся и как устроены внутри. Фича действительно мощная, будет интересно.

Поехали!

Pytest-xdist: как распараллелить тесты без конфликтов в базе

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

Привет! Я Андрей Сташок, бэкенд-разработчик в KTS. В этой статье я расскажу о запуске параллельных тестов через pytest-xdist.

Почему это важно?

Объясню на нашем примере. При разработке продуктов мы постоянно выполняем юнит-тестирование. Раньше мы проверяли все последовательно, и с расширением тестовой базы время проведения испытаний заметно возрастало. Распараллеливание через pytest-xdist помогло нам сильно ускориться, и сегодня я хочу поделиться этим трюком с вами.

Я расскажу, как запускать параллельные тесты для реляционной БД PostgreSQL (с драйверами asyncpg и psycopg2) и key-value БД Redis. Для подключения к реляционной БД мы будем использовать SQLAlchemy, а для Redis — библиотеку redis. Кроме того, я рассмотрю, как автоматизировать выполнение миграций при каждом запуске тестов с использованием alembic.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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