Обновить
617.85

Python *

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

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

Декораторы. Продвинутый уровень. Шаблон универсального декоратора

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

Всем привет! Меня зовут Михаил, я веду Telegram-канал «Python Шпильки», где делюсь изящными приемами программирования. Сегодня я хочу рассказать об универсальном декораторе, который может принимать аргументы, а также вызываться без их приема. Для тех кто хорошо знает тему декораторов - ничего нового они тут не увидят! Этот пост для тех, кто, возможно, хочет более подробно понять тему декоратора. Итак, поехали.

Для начала приведу пример конструкции универсального декоратора:

Читать далее

Против рынка: что получилось, когда я заменил спекуляции математикой

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

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

Читать далее

DIY Observability для автотестов, используя Pytest, ClickHouse и Grafana

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

Всем привет! Меня зовут Андрей, я инженер по автоматизации тестирования в команде Озон Банка, занимающейся разработкой и поддержанием инструментов тестирования, которыми пользуется весь банк.

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

Читать далее

Занимательные графики. Python matplotlib

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

Относительно недавно заинтересовался нейросетями и стал изучать python. Одной из первых библиотек, которой заинтересовался была matplotlib. Достаточная занимательная библиотека для построения научных графиков в Python. Она включает в себя функции для создания высококачественных визуализаций типа линейных диаграмм, гистограмм, диаграмм разброса и прочих. Такие графики крайне полезны для понимания процесса, вывода аналитики и прочих задач.

Читать далее

Все об устройстве MSK144 с примерами на Python (часть 2)

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

MSK144 — цифровой протокол, разработанный Джо Тейлором (K1JT) и его командой в 2016 году для проведения связей через метеорное рассеивание.

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

Статья может быть интересна радиолюбителям и людям, интересующимся темой цифровой обработки сигналов.

Читать далее

Декораторы в Python для начинающих с домашним заданием

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

Привет, Хабр! Если вы работаете с Python дольше пары недель, вы наверняка сталкивались с конструкцией, начинающейся с символа @. Это декораторы — мощный инструмент, который делает код чище, читабельнее и соответствует принципу DRY (Don't Repeat Yourself). Но за элегантным синтаксисом скрывается несколько ключевых концепций языка, которые важно понимать.

Читать далее

Я сделал Log Bull — простую open source альтернативу ELK, Loki и Graylog для сбора логов из кода (Python, Go, JS и т.д.)

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

За последние ~5 лет я много раз сталкивался с задачей собирать логи: обычно из маленьких или средних по размеру кодовой базы проектов. Отправлять логи из кода не проблема, у Java и Go для этого есть библиотеки практически из коробки. А вот разворачивать что-то для их сбора — головняк. Понятно, что решаемый (ещё до ChatGPT, а сейчас так тем более), но всё же. Все системы логов, прежде всего, ориентированы на большой-большой enterprise мир и его требования, а не на простых смертных с несколькими палками, клеем и дедлайном "вчера".

Запуск ELK для меня каждый раз испытание: куча настроек, нетривиальный деплой, а при заходе в UI разбегаются глаза от вкладок. С Loki и Graylog — немного проще, но всё равно функций сильно больше, чем мне нужно. При этом разделять логи между проектами, добавлять других пользователей в систему так, чтобы они не видели лишнего — тоже не самый очевидный процесс.

Поэтому примерно год назад я решил, что сделаю свою систему для сбора логов для себя: максимально простую в использовании и запуске. Чтобы разворачивалась на сервере одной командой, вообще без настроек и без лишних вкладок в интерфейсе. Собственно, так появился и теперь вышел в open source Log Bull: система для сбора логов для разработчиков с проектами middle-sized размера.

Читать далее

История (и код на github) про то, как ChatGPT подружил проектный телеграм-чатик и таски в Jira

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

(спойлер: в конце будет ссылка на GitHub)

Таск-менеджеры вроде Jira — хороший инструмент для ведения проектов. Вот только есть одна проблема — на них очень быстро забивают. В первую очередь — проектные менеджеры (на всякий случай: я тоже забиваю). Когда проект стартует, менеджер с командой, как правило, делают волевую попытку декомпозировать его на эпики и задачи. Каждая задача получает красивое описание, а иногда даже назначенных исполнителей и дедлайны.

Потом проект стартует…

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

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

Читать далее

Собираем MLOps-проект с нуля: Как я научил Telegram-бота искать скидки на Avito

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

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

Я решил подойти к этой задаче как инженер и создать личного ассистента, который бы делал всю грязную работу за меня: 24/7 сканировал Avito, сам оценивал адекватность цены и присылал мне в Telegram только самые сливки.

Так родилась идея проекта Intelligent Deal Finder. В этой статье я познакомлю вас со своим проектом, который решает эту задачу. Эта статья будет ознакомительной.

Читать далее

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

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

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

Сложность языка зависит не только от его особенностей, но и от вашего опыта и готовности разбираться в материалах. Объективного критерия нет.

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

Читать далее

AI-генерация тестов: как превратить 3 месяца работы в 1 неделю

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

AI генерирует тесты, но 95% из них не работают — галлюцинирует классы,
путает поля, использует несуществующие API. Знакомо? Мы в отделе RAPID прошли через
это на проекте с биржевым протоколом TWIME. Делимся итеративным подходом:
как за 3 шага превратить хаос из 307 тестов в 109 работающих.
С конкретными промптами, метриками и выводами.

Читать далее

Python-разработчик в 2025 году: скилсет джуниора и ожидания рынка

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

Привет! Это команда Яндекс Практикума. В первой половине года мы провели исследование рынка Python-разработки и узнали, как меняются требования работодателей и к чему стоит готовиться джуниору при трудоустройстве. Рассказываем самое важное.

Читать далее

Мобильный клиент для LM Studio с удаленным доступом

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

Предисловие. Я тут работаю с lmstusio сервером и мне нужно было приложение на andriod которое бы с ним работало быстро и без всяких дополнительных танцев с бубном. Сделав его я подумал почему бы не предложить другим может кому то же надо. Выглядит он так

Читать далее

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

Часть 2. Победа над каракулями: бенчмарки Attention/ControlNet/Canva и готовые рецепты

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

Привет, чемпионы! Мы детально разобрали природу проблемы и изучили арсенал методов. Теперь перейдем к самому важному — практическим результатам. Я протестировал каждый подход на реальной задаче создания инфографики "Agentic AI Explained" и готов показать, что действительно работает.

Читать далее

Сможет ли языковая модель научиться читать биржевые графики? Эксперимент с LLM на данных Московской биржи

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

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

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

Инструмент эксперимента — модель distilbert‑base‑uncased с Hugging Face и это облегчённая, быстрая версия BERT для понимания языка. Мне показалось это практичным выбором для прототипа — позволяет быстро проверять разные способы текстовой разметки без гигантских ресурсов. Цель была чёткая: по текстовому описанию недавней истории торгов предсказать рост цены на следующий день.

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

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

А ещё весь код уже на GitHub.

Анализ и код

Декларативное программирование на Python

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

Рассматриваются встроенные в Python возможности декларативного программирования и их развитие в библиотеках SQLAlchemy, NumPy, Pandas. Показывается применение трех видов декларативного программирования с помощью библиотеки DecPy: аналогов SQL, QBE и Prolog. В том числе приводятся рекурсивные запросы.

Краткое содержание:

Читать далее

Java против Python: Призрак с LTS-подпиской стучится в AI

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

2025 год. Эпоха, когда ИИ генерирует код, модели меняются каждые полгода, а техлид должен разбираться не только в паттернах, но и в условиях лицензионного соглашения.

Читать далее

Процесс регистрации/авторизации пользователя по номеру телефона через Telegram

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

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

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

По предварительным исследованиям целевая пользовательская аудитория продукта является пользователями мессенджера Telegram. Вот в эту сторону я и начал думать. “Коробочный” механизм авторизации через виджет Telegram не отдает номер телефона пользователя, а нам именно он и нужен. Городить велосипед по получению номера телефона по id пользователя идея не самая лучшая, поэтому я решил сделать своего ТГ-бота для механики авторизации. Я на паре сайтов уже видел подобные решения, быстрый поиск по примерам реализации этой механики не дал внятных результатов. При поиске “авторизация telegram” я наткнулся на сайт, который был первым в поисковой выдаче. Пошел смотреть как у них все устроено, рассмотрим по шагам:

Читать далее

Изучаем Python: модуль re для начинающих с практическим домашним заданием

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

В мире, где существуют десятки специализированных библиотек для парсинга HTML, XML, JSON и других форматов, может показаться,- что регулярные выражения — это устаревший инструмент. Однако такое мнение ошибочно. Регулярные выражения, или RegEx, остаются фундаментальным и незаменимым навыком в арсенале любого разработчика, работающего с текстовыми данными.

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

Читать далее

Книга «Программирование бэкенда на Python. Практическое руководство»

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

Приветствуем, коллеги. На связи Олег Сивченко @OlegSivchenko.

Уместен и закономерен ваш интерес, как мы обзаводимся правами на перевод зарубежных книг и где берём новинки. Такой вопрос задал нам читатель @PopovGP. Действительно, книгоиздательская отрасль не один год приспосабливалась к современным реалиям, но один интересный новый тренд действительно стоит раскрыть подробнее: мы стали активнее искать и рассматривать небольшие издательства, настроенные на сотрудничество. Так, уважаемый коллега @Holmogorov завершил длительный поиск базовой книги по Jetpack Compose, найдя в небольшом американском издательстве «Payload Publishing» отличный труд Нила Смита «Основы JetPack Compose: Разработка приложений для Android с помощью Jetpack Compose, Android Studio и Kotlin». Эта книга вышла в августе.

О другой очень похожей находке я хочу рассказать вам сегодня. Это совсем свежая новинка «Программирование бэкенда на Python. Практическое руководство» под авторством Тима Питерса. Обнаружили мы её в каталоге маленького индийского издательства «GitForGits».

Читать далее

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