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

Python *

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

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

Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

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

Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.

В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

Читать далее

Как работают dict, slots и weakref в Python (и зачем это знать)

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

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

Сегодня рассмотрим как slots, dict и weakref помогают нам выжимать максимум из Python: экономить память, ускорять доступ к атрибутам и бороться с утечками.

Читать далее

Пишем отложенные сообщения для ВК на питоне

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

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

Читать далее

Не позволяйте словарям портить ваш код

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

Как часто ваши простенькие прототипы или предметные скрипты превращаются в полномасштабные приложения?

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

Акторная модель на Python: Ray, Thespian, Pykka

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

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

В этой статье мы коротко пройдемся по основным вариантам реализации акторной модели на Python.

Читать далее

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

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

У меня, как у практикующего юриста в консалтинге и человека, горящего желанием научиться новым навыкам, появилась идея (которая в ходе реализации изменила свой вид) создать программу для анализа эмоций и тональности документов.

В программировании имею небольшой опыт обучения основам C#, а с недавнего времени — изучение основ Python.

Я начну с самого начала, чтобы те, кто еще не пробовал кодить, могли понять, с чем придется столкнуться и чего бояться не стоит.

На вооружение был взят ChatGPT (Plus)/DeepSeek и VS Code для написания кода.

Читать далее

Гиббсовское сэмплирование на Python

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

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

Сегодня разбираем реализацию Gibbs Sampling на Python. Это один из методов Монте‑Карло по цепям Маркова (MCMC), который решает такую задачу:

«У нас есть сложное многомерное распределение, но мы не можем из него напрямую сэмплировать. Однако, если у нас есть условные распределения, то мы можем брать новые точки, обновляя поочередно каждую координату.»

Читать далее

Telescope — web-based log viewer UI

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

Всем привет

Хочу поделиться с сообществом своим проектом.

Telescope - это opensource web-приложение для удобной работы с логами, хранящимися в ClickHouse.

Читать далее

Аннотации типов в Python: коротко о главном

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

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

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

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

Читать далее

Как SonarQube помогает автоматизировать код-ревью: гид для начинающих

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

SonarQube — это инструмент анализа качества кода, написанный на Java. Он выявляет баги, уязвимости, дублирование кода и «запахи кода» (code smells).

SonarQube используют в CI/CD (Continuous Integration, Continuous Delivery — непрерывная интеграция и доставка) для автоматической проверки и улучшения качества кода.

Читать далее

Как я создавал Telegram-бота с помощью ChatGPT

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

Не так давно мне пришла мысль попробовать создать собственного Телеграм-бота (просто из любопытства). Никаких знаний в программировании у меня нет, поэтому первого бота я создал с помощью специального конструктора для Телеграм-ботов. Довольно удобная штука, но зачастую обладает ограниченным функционалом или требуют оформления подписки. И тут мне в голову пришла идея воспользоваться популярным ChatGPT и попробовать создать бота с нуля, во всём следуя инструкциям нейронки. Устанавливать дополнительный софт на своём основном ПК мне не очень хотелось, поэтому разместить бота я решил на VDS-сервере.
Читать дальше →

Как сделать livenessProbe для Kafka-консьюмеров и перестать перезапускать их вручную

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

Kafka-консьюмеры не всегда работают так стабильно, как хотелось бы. Иногда они просто зависают — без ошибок, без падений, но и без обработки сообщений. LivenessProbe в Kubernetes помогает автоматически перезапускать зависшие сервисы, но с Kafka-консьюмерами всё не так просто: стандартного решения для них нет. В этой статье разберём, как правильно реализовать livenessProbe для консьюмеров с помощью паттерна Heartbeat, чтобы не перезапускать их вручную.

Читать далее

Гуглить баги — это нормально. Как AI Debugger освоил этот навык и сам исправляет ошибки

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

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

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

Читать далее

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

DevOps нет, но вы держитесь: как разработчики запустили тесты на этапе MR

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

Со старта нашего проекта Polymatica EPM (бизнес‑платформа для автоматизации процессов стратегического планирования и бюджетирования) мы решили: код должен покрываться тестами. Проект построен на стеке FastAPI + Poetry + Pytest. Из‑за особенностей проекта тесты, в основном, функциональные. Все шло хорошо, команда росла, тесты писались, но запускались только на локальной машине перед коммитами. Наступил момент, когда нужно было внедрить автоматический прогон тестов на этапе Merge Request (MR).
На тот момент у нас был собственный GitLab и настроенный CI/CD, но ресурсы DevOps были ограничены. Поэтому задачу пришлось решать силами разработчиков. Меня зовут Дмитрий Богданов, я старший бэкенд‑разработчик, и в этой статье расскажу, как мы оптимизировали запуск тестов, с какими проблемами столкнулись и почему выбрали именно базовый образ для CI/CD.

Читать далее

Почему мы построили монолит на чистой архитектуре. И почему это взбесило системных аналитиков

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

Привет! Меня зовут Павел Лукьянов, я заместитель CTO в AGIMA. На одной из прошлых работ мы с ребятами попробовали внедрить так называемую чистую архитектуру на монолитном проекте. И это был интригующий опыт. Во-первых, мы начали намного рациональнее подходить к оценке задач. Во-вторых, заметно сократили time-to-market. А в-третьих, сильно разозлили наших аналитиков. Считаю, такими впечатляющими результатами стоит делиться.

Читать далее

LitestarCatsCV. Тренируемся на кошках. Реализация API и работа с данными. Часть 2

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

Что вас ждёт

Если в первой части мы заложили фундамент проекта (выбор инструментов, настройка окружения и структура), то здесь мы превратим этот каркас в полноценное API для управления резюме кошек (или людей — как вам ближе). Мы подключим базу данных, добавим тесты, настроим миграции и даже проверим всё в действии. К концу статьи у вас будет рабочее API, которое можно потрогать руками (или лапками 🐾). Полный код доступен на GitHub — ссылка в конце!

Читать далее

Урок ценой $115 000: чему меня научила разработка продукта с нуля

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

Последние пару лет в свободное от Настоящей Работы время я в роли CTO/соло-бэкендера участвовал в создании Stry — фитнес-стартапа с подписной моделью. Теперь, когда наша команда официально объявила о прекращении дальнейшего развития проекта, пришло время порефлексировать и поделиться полученным опытом. В этой статье я в двух словах представлю продукт, детально опишу архитектуру проекта и расскажу о наших (моих?) основных технических успехах и неудачах. Поехали!

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

Читать далее

Как я сделал RAG для своей компании (часть 2). И как начал делать AI Агента

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

Итак, в первой части я сделал первый подход к RAG для нашей небольшой компании с большим кол-вом документов на wiki, и множеством переписок в Slack.

Стек технологий: Python, ChromaDB, простой SentenceTransformer("all-MiniLM-L6-v2"), Slack API, OpenAI API, Google Gemini API, YandexGPT API, Sber Gigachat API.

Что уже работает?

Читать далее

Анализ торговых стратегий для акций Мосбиржи на дневных интервалах с помощью Python

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

Торговля акциями требует гибкости, особенно когда речь идет о тестировании стратегий технического анализа на прошлых данных. Я выбрал Python и библиотеки backtesting.py и aiomoex, потому что они позволяют анализировать рынок без сложных платформ и ограничений. Python дает свободу автоматизации, backtesting.py обеспечивает удобный и быстрый механизм тестирования стратегий, а aiomoex позволяет скачивать данные напрямую с Московской биржи без привязки к брокеру.

Важно, что backtesting.py получил обновление после четырех лет без обновлений, что делает его актуальным инструментом. И в отличие от MetaTrader, StockSharp, TSLab и Quik, которые работают с Московской биржей, но требуют Windows, если брокер имеет API, то можно запускать скрипт на любом сервере, включая облачные решения и Raspberry Pi.

В этой статье я протестирую самую свежую стратегию теханализа Джона Ф. Элерса (John Ehlers), направленную на устранение запаздывания скользящей средней. Разберемся, как её адаптировать к акциям Московской биржи и протестировать с помощью Python.

Исследование теханализа

Python для начинающих дата-аналитиков: как настроить виртуальное окружение?

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

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

Читать далее

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