Обновить
790.18

Python *

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

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

Телеграм не бот, REST API wrapper для управления аккаунтом но не ботом

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

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

Читать далее

Разбей и властвуй: как создать кастомный токенизатор в SpaCy

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

Привет, Хабр! В этой статье расскажем вам о том, как создавать собственные токенизаторы с SpaCy. Да-да, тот самый SpaCy, который мы все знаем и любим.

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

Читать далее

30k аудиозаписей: наводим порядок

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

Зачем писать дневник, если можно его надиктовывать? Казалось бы, здравая мысль, но как потом с ним работать? И нужен ли он вообще в таком виде? Сейчас есть довольно большое количество программ, которые сразу сделают speech‑to‑text, и проблемы не будет. А что, если такая идея возникла «‑дцать» лет назад, когда деревья были большими, а в телефонах только‑только появилась функция «диктофон»? За многие годы в нашей домашней видеотеке накопилось более 30 000 таких записей. Пришла пора разложить всё по полкам, конечно же, с «преферансом и куртизанками».

Читать далее

Кроссплатформенные приложения на Python с Flet и FastAPI: Полное руководство по разработке

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

Сегодня я покажу вам, что для создания полноценных кроссплатформенных приложений достаточно одного языка — Python. С помощью всего нескольких библиотек и фреймворков можно легко обойтись без JavaScript для веб-разработки, без Kotlin и Swift для мобильных приложений и даже без C++ для десктопных программ. В этой статье разберем, как, используя Flet и FastAPI, можно создавать мощные и удобные решения для любой платформы!

Читать далее

MoexBuilder: как я создаю библиотеку на Python. Часть 3

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

Привет, Хабр! Продолжаю рассказывать, как я создаю библиотеку на Python. В этой статье я расскажу о том, как мне удалось структурировать проект, как был реализован функционал получения динамики по инструменту за указанный период - dynamics(), а также о том, как была добавлена возможность генерации простых графиков.

Читать далее

Pygame для начинающих программистов. Статья вторая. События

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

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

Разделим его на три условных раздела:

Читать далее

Tech каналы Telegram

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

Телеграм сейчас является основным источником контента для многих. У Хабра тоже есть канал t.me/habr_com, его читает более 100 000 подписчиков. Кроме этого, о технологиях есть тысячи других каналов. Сколько их? Какая у них аудитория? Где найти данные? Разберемся в статье.

Стало интересно сделать анализ всех телеграм каналов: подписчики, рейтинги, частота статей, процент репостов, процент рекламы и т.д., поэтому посмотрел как можно достать данные. Забегая вперёд, скажу что собрал датасет со всеми телеграм каналами, в том числе и каналы с одним подписчиком. Их около 2 млн по всем гео. Какого-то сервиса, где можно сразу быстро и просто взять все каналы и набор метрик по ним, я не нашел, поэтому посмотрел что есть из готовых данных.

Существуют агрегаторы данных телеграм типа tgstat (https://tgstat.ru/). Один из способов - парсинг данных агрегаторов. Варианты с ботами, виртуальными аккаунтами показались более затратными, поэтому парсил несколько агрегаторов.

Итак, посмотрел ряд агрегаторов, взял на пробу три датасемпла. Самым адекватным показался семпл tgstat, поэтому, остановился на нем. В сервисе надо регистрироваться по телеграм аккаунту. Контент динамический, то есть, подгружается по клику. В парсинге всех данных не было смысла - важно было посмотреть что получится на семплах. Спарсил несколько категорий RU домена.

Сегодня расскажу про tech каналы с этой страницы (https://tgstat.ru/tech). Это каналы категориии 'Технологии', Россия. Периодически читаю каналы этой категории, ну и канал Хабра там есть. Поэтому, реллевантно будет здесь расказать именно о технологических каналах.

Читать далее

Автоматизированное тестирование API с использованием Python. Работа с JSON и JsonPath

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

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

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

Читать далее

Не бойтесь потоков в Python, они не кусаются

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

Привет, любитель Python!

Слышал о потоках, но чувствуешь себя немного неуверенно? Не волнуйся! Потоки в Python — это не про силу джедаев. Это хороший инструмент, который, кстати, вполне дружелюбен, если знать основные правила общения с ним. Правда, у потоков в Python есть свои нюансы, и часто можно услышать пугающее слово GIL. Но не спеши пугаться и бежать в сторону async-кода! Потоки в Python отлично работают в задачах ввода-вывода и могут здорово ускорить выполнение твоей программы, если применять их грамотно.

Эта статья — как раз для тех, кто хочет понять потоки с нуля: разберём, для чего они нужны, когда стоит их использовать, а главное — как не наломать дров.

Читать далее

Состояние производительности Python 3.13: Free-Threading

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

CPython 3.13 был выпущен две недели назад и стал одним из наиболее сфокусированных на производительности релизов за последнее время. Пробежавшись по release notes, я заметил несколько фич, которые могли бы повлиять на производительность.

В этой статье мы сфокусируемся на free‑threaded режиме и посмотрим, как его использовать и как он может влиять на производительность.

Читать далее

Как я настраивал меню выхода в Qtile

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

Некоторое время назад я, в силу ряда причин, решил перейти со стандартного DE на один из оконных менеджеров (для тех, кому интересно, archwiki), изначальным дистрибутивом был выбран ArcoLinux, так как он обладал расширенным репозиторием Arch, который включал в себя собственные пакеты команды ArcoLinux (в т.ч. меню archlinux-logout для выхода в спящий режим, выхода из системы и т.д.), а также предоставлял большие возможности по выбору пакетов, изначально установленных в системе, и настроенных оконных менеджеров (т.к. настраивать их с нуля, зачастую, очень долго и муторно, на мой взгляд).

Читать далее

Pygame для начинающих программистов. Статья первая

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

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

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

Библиотека Pygame, в свою очередь, предоставляет мощный инструментарий для создания 2D-игр на Python. Она упрощает работу с графикой, звуком и взаимодействием с пользователем, позволяя сосредоточиться на логике игры и дизайне. С Pygame мы будем реализовать свои идеи создавая игровые механики.

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

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

Читать далее

Написание ETL пайплайна при помощи airflow, rabbitmq и postgres

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

В данной статье мы рассмотрим взаимодействие apache airflow, rabbitMQ и postgreSQL. Научимся правильно устанавливать соединения между ними и напишем базовый ETL.

Читать далее

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

MoexBuilder: как я создаю библиотеку на Python. Часть 2

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

Привет, Хабр! Продолжаю рассказывать о том, как я создаю библиотеку на Python. В этой статья я расскажу о том, как реализовал взаимодействие с ISS MOEX, используя асинхронный подход, а также о том, как был добавлен функционал interval().

Читать далее

MoexBuilder: как я создаю библиотеку на Python. Часть 1

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

Привет, Хабр! Это моя первая статья и в ней я хочу не только поделиться опытом, полученным в ходе реализации собственного проекта, но и услышать обратную связь\критику\предложения\замечания относительно принятых мною решений. Моя статья не предложит вам "подписаться на телегу" или что-то подобное, я просто расскажу о том, чего добился на текущий момент.

Читать далее

Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

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

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

В этом туториале я покажу, как создать приложение для автоматического анализа встреч и составления отчетов с использованием API BotHub (Whisper-1 + Claude 3.5 Sonnet). Это приложение будет распознавать речь с аудиозаписей, выделять ключи — кто что сказал и какие задачи в целом обсудили — и составит отчет, включая формат ПДФ.

Читать далее

Кастомизация Django Admin. Часть 1: Структура шаблонов

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

Давайте просто признаемся друг другу... Все мы иногда это делаем. Все мы иногда кастомизируем Django админку. Без четкого понимания того, как построены шаблоны и используемые классы любая попытка кастомизации превращается в пытку.
Этот цикл статей — моя попытка помочь понять и полюбить то, как всё устроено изнутри. Тема длинная, так что начнем с самых азов. Сейчас мы разберем все основные шаблоны и механизм их поиска.

Читать далее

Переосмысление концепции подсчета ссылок и полный отказ от сборщика мусора

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


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


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


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


А как бы хотелось отдать эти проблемы на откуп компилятору! Чтобы компьютер сам автоматически проверял корректность доступа по ссылкам, в том числе и из разных потоков и чтобы все это делалось во время компиляции приложения без накладных расходов в рантайме!


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

Читать дальше →

Склеить несколько видеофайлов, что может быть проще…

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

Если их пара. А если их пара десятков? А если несколько сотен? А если они еще и в разных форматах? Идея загонять все в видеоредактор отпала почти сразу. Но в начале — небольшая предыстория.

За каждым великим мужчиной стоит женщина, стоит и ворчит. (народная мудрость, отцензурировано)

Читать далее

Безопасная разработка на Python

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

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

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

Читать далее

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