Python Pro
32 subscribers
14 photos
4 files
214 links
Про то, что python это не только import
Download Telegram
🚀 Квадродерево на Rust: 14-кратный прирост скорости для Python!

Квадродеревья — мощный инструмент для работы с пространственными данными и 2D-коллизиями. Но старые Python-библиотеки уже не справляются с нагрузкой. Решение - fastquadtree на Rust-ядре, который в 14 раз быстрее PyQtree!

▪️ Скорость: Обработка 250 000 точек и 500 запросов за 0.120 секунды (PyQtree — 1.755 с).
▪️ Удобство: Простой API для отслеживания объектов и KNN-запросов.
▪️ Поддержка: Готовые сборки под Linux, Mac и Windows.

Что внутри?
▪️ Визуализация работы квадродерева через Pygame (смотри репозиторий).
▪️ Бенчмарки для самостоятельного тестирования.

Документация: PyPI | GitHub

👉 Подписаться
🔥 КАК СОЗДАТЬ СИСТЕМУ ОПОВЕЩЕНИЯ ПО БЛИЗОСТИ НА PYTHON
📡 Мечтаете автоматизировать отслеживание устройств через Bluetooth? Всё проще, чем кажется: Python + BLE — никаких нейросетей и ракетных технологий.

Система анализирует сигналы RSSI (индикатор мощности принятого сигнала) для оценки расстояния до BLE-устройств. Как только значение достигает заданного порога — скрипт запускает звуковое уведомление.

▫️ Что понадобится:
▫️ Адаптер BleuIO для сканирования BLE-устройств
▫️ Библиотека bleuio для работы с данными в Python
▫️ Настраиваемый порог RSSI (чем ниже значение — тем ближе устройство)

▫️ Где использовать:
🚪 Умный дом: автоматическое открытие дверей при приближении
🤖 Безопасность: тревога при несанкционированном доступе
🏷️ Логистика: мониторинг перемещения меток в реальном времени

Пример кода для сканирования устройств:
from bleuio import BleuIO

def proximity_alert(rssi_threshold=-70):
dongle = BleuIO()
while True:
devices = dongle.scan(scan_duration=5)
for device in devices:
if device['rssi'] >= rssi_threshold:
print(f"🔔 Устройство {device['address']} в зоне!")

proximity_alert()

Полный код и настройки — в официальном гайде BleuIO.

💡 Запускайте скрипт в фоне — он почти не ест ресурсы. Для тестов используйте смартфон как «маячок», положив его в карман.

👉 Подписаться
🚀 Игра, которая научит тебя Python! 🐍

"The Farmer Was Replaced" — это не просто игра, а настоящий тренажер для ума. Управляй дроном, оптимизируй его работу, собирай ресурсы и открывай новые технологии. Цель — стать самым эффективным фермером в мире, прокачивая при этом свои навыки решения задач и программирования. 💡

Игровой процесс построен на непрерывном прогрессе, без надоедливых уровней. Каждая новая фермерская задача приносит ресурсы, которые идут на разблокировку улучшений. 💰

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

Уже доступно в Steam: The Farmer Was Replaced

👉 Подписаться
🚀 Комета Атлас: Разбираем мифы с помощью Python! 🚀

В последние месяцы космический объект 3I/Atlas привлёк внимание не только астрофизиков, но и любителей теорий заговора. Его необычное движение и форма породили слухи о внеземном искусственном происхождении. Но так ли это на самом деле? Давайте разберёмся с помощью кода! 💻

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

🔹 Гиперболическое движение кометы: Анализируется траектория движения 3I/Atlas, чтобы понять, соответствует ли она естественным астрофизическим законам.

🔸 "Цилиндрическая" форма: Исследуется предположение о необычной форме кометы, которое, вероятно, является артефактом систем отслеживания звёзд, а не реальной характеристикой объекта.

Код и видеоматериалы:

Анализ движения: CompressedCosmos_Interstellar_Comets.ipynb
Анализ формы: CompressedComets_CometMovement.ipynb
Видео: Загадки межзвездных комет
Видео: Движение комет

👉 Подписаться
🚀 Jinx: Ваш личный Python-интерпретатор для J! 🐍

Этот проект — ваша возможность погрузиться в мир J, используя мощь NumPy для работы с многомерными данными.

J — это язык, построенный вокруг массивов, который оказал влияние на NumPy, но предлагает свой, уникальный способ управления тем, как функции применяются к данным. Вместо привычных осей и трансляции, здесь всё строится вокруг "ранга" операции.

J славится своим богатым набором примитивов — это своего рода "глаголы", которые могут как выполнять операции над массивами, так и создавать новые структуры для дальнейшей работы. На первый взгляд, это может показаться немного запутанным. Например:

+/ % — три совершенно разных "глаголов", которые в совокупности вычисляют арифметическое среднее значение для массива.
* 1&|.&.#: — эта комбинация создает глагол, способный решать классическую задачу Иосифа Флавия.

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

▪️ Токенизация (wordformation.py): Код преобразуется в последовательность отдельных элементов (токенов) с помощью тщательно разработанной таблицы переходов.

▪️ Разбор (wordspelling.py): Токены идентифицируются как составные части языка J, включая корректный разбор числовых значений.

▪️ Исполнение (wordevaluation.py): Код выполняется путем анализа и применения различных предопределенных паттернов.

Для тех, кто хочет копнуть глубже, вот основные материалы, которые легли в основу проекта:
1. An Implementation of J: — подробное описание реализации J.
2. J for C Programmers: — руководство по языку J, ориентированное на программистов C.

Этот проект определенно стоит вашего внимания, если вы:
▪️ Хотите лучше понять принципы работы с массивами и тензорами.
▪️ Интересуетесь тем, как устроены языки программирования, подобные J.
▪️ Знакомы с NumPy или PyTorch и хотите взгляальтернативный подход к обработке многомерных данныхданных. 📊

Для сравнения, полный исходный код оригинального J доступен здесь

Jinx
🚀 ChanX: WebSocket-разработка без боли и страданий! 🚀

ChanX — это "батарейки в комплекте", готовое решение для управления WebSocket-соединениями, которое устраняет всю рутину и позволяет сосредоточиться на главном.

Что умеет ChanX?

Автоматическая маршрутизация сообщений: Забудьте про бесконечные if/else! ChanX использует Pydantic discriminated unions для элегантного роутинга.
Type-safety с Pydantic: Полная поддержка mypy/pyright и валидация на лету — никаких неожиданных ошибок. 🤓
Автогенерация AsyncAPI документации: Получите документацию, как OpenAPI/Swagger, но для ваших WebSockets, автоматически!
Интеграция с Channel Layers: Масштабируйте рассылку сообщений с помощью Redis.
Система событий: Триггерьте WebSocket-сообщения из любой части вашего приложения – HTTP-эндпоинты, Celery, команды.
Встроенная аутентификация: Поддержка прав доступа Django REST framework.
Утилиты для тестирования: Комплексные инструменты для удобного тестирования.
Структурированное логирование: Автоматическое отслеживание запросов и ответов.

Для кого этот фреймворк?

ChanX создан для реальных продакшн-проектов и идеально подходит для:

🔸 Команд, строящих real-time фичи и желающих стандартизировать код.
🔸 Django-проектов, стремящихся избавиться от WebSocket- boilerplate.
🔸 FastAPI-проектов, которым нужны мощные WebSocket-возможности
🔸 Фанатов type-safety, желающих полного статического анализа.
🔸 API-first команд, которым нужна автоматическая документация.

Погрузитесь в мир ChanX с помощью туториалов:

Django Tutorial

FastAPI Tutorial

Ссылки:

⭐️ GitHub

📚 Документация

📦 PyPI

👉 Подписаться
🚀 Python 3.14 без GIL: будущее многопоточности уже здесь!

🔥 Почти три десятилетия глобальная блокировка интерпретатора (GIL) в CPython мешала нам по-настоящему задействовать все ядра CPU. Но с выходом Python 3.14 всё меняется: новый free-threaded build снимает GIL и позволяет выполнять байткод одновременно в нескольких потоках.

Зачем был нужен GIL

GIL — это глобальный мьютекс, который гарантировал, что только один поток выполняет байткод CPython в любой момент. Требовалось это, чтобы защитить объекты: у каждого Python-объекта счётчик ссылок. Одновременное изменение этого счётчика из двух потоков приводило бы к коррумпированию памяти. Добавить блокировку вокруг каждого объекта оказалось бы слишком сложно и медленно, поэтому выбрали простой путь — обернуть весь интерпретатор одной глобальной блокировкой.

Старые модели конкурентности

- threading
– Реальные ОС-потоки, но байткод исполняется последовательно из-за GIL.
– Отлично подходит для I/O, но бесполезен в CPU-bound задачах.

- multiprocessing
– Кладёт GIL в отдельный процесс, давая настоящий параллелизм.
– Минусы: высокая нагрузка на память, overhead сериализации (pickle) и запуск процессов.

- asyncio
– «Зелёные» потоки внутри одного ядра, с кооперативной многозадачностью.
– Идеален для высококонкурентного I/O, но не использует более одного ядра CPU.

Сборка Python 3.14 без GIL

Собрать вручную:

git clone https://github.com/python/cpython
cd cpython
git checkout v3.14.0
./configure --prefix=$HOME/.py-314-ft --disable-gil
make -j && make install
$HOME/.py-314-ft/bin/python3 -V


Проверка:

import sys
print("Free-threaded build:", not sys._is_gil_enabled())
# Должно быть: Free-threaded build: True


Ожидаемые результаты

- CPython 3.14 с GIL – время почти не меняется при любом числе потоков.
- Free-threaded build – почти линейное ускорение: 2×, 4×, 8× с ростом числа потоков!

Полная статья
🔥 Pygls 2.0.0: Новый уровень для создания LSP-серверов! 🚀

pygls 2.0.0 – это находка для всех, кто хочет создавать собственные серверы Language Server Protocol (LSP).

Pygls уже активно используется для интеграции с VSCode, а благодаря поддержке библиотеки типов lsprotocol от Microsoft, многие пользователи VSCode уже пользуются всеми преимуществами этой библиотеки.

Если вы разработчик, который создаёт инструменты для других программистов, или просто хотите добавить крутые фишки языковой поддержки в свой любимый редактор – pygls 2.0.0 станет для вас отличной основой. 🛠

🔗 Pygls на PyPI
🔗 Репозиторий на GitHub

👉 Подписаться
🚀 SQLAlchemy: Глубокое Погружение для Python-Разработчиков!

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

Что ждет читателей:

Основы и первые шаги: Даже для опытных пользователей найдутся интересные моменты, раскрывающие SQLAlchemy с новой стороны.

Продвинутые темы:
Создание кастомных типов данных ⚙️
Работа с полиморфными таблицами 🤸‍♂️
Гибридный декларативный подход 🤝
Использование JSON и JSONb 📦

( Статьи постоянно пополняются, так что следите за обновлениями! )

🔗 Изучить серию статей: Brewing with SQLAlchemy

👉 Подписаться
Python + Химия

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

⚗️ Для кого этот инструмент?

Студенты и преподаватели химии: Легкий доступ к данным и возможность моделировать реакции. 👩‍🎓👨‍🏫
Разработчики научного ПО: Интеграция химических вычислений в ваши приложения. 💻
Энтузиасты Data Science и автоматизации: Обогащение ваших пайплайнов химической экспертизой. 📊🤖

▫️ Ключевые преимущества:
Полностью автономная работа 🌐🚫
Балансировка химических уравнений ⚖️
Компактность и скорость ⚡️

Все исходники и инструкции по установке доступны на GitHub: Promethium на GitHub

👉 Подписаться
🖥 Python-код на 10 000 VM 🖥

Burla — это прорывное решение, призванное упростить масштабирование Python-кода. Теперь запуск кода на тысячах машин происходит буквально в одну строку.

Вот как это работает:

Простота: Достаточно одной функции remote_parallel_map(func, inputs). Передайте ей вашу Python-функцию и входные данные, и Burla сама позаботится обо всем остальном.

Гибкость: Есть свой Docker-образ? Отлично! Хотите задать конкретные требования к оборудованию? Пожалуйста!⚙️

Эффективность: Инструмент идеально подходит для задач, которые легко распараллелить: предобработка данных, подбор гиперпараметров, пакетная обработка. Время выполнения миллиона простых функций сокращается до секунд! ⚡️

Масштаб: Запускайте задачи в фоновом режиме и не беспокойтесь о них. Burla автоматически управляет распределением, повторными попытками, логированием и масштабированием на до 10 000 виртуальных машин. 🌐

from burla import remote_parallel_map

# Просто вызовите функцию
remote_parallel_map(your_function, your_inputs)


И это всё! Инфраструктурные заботы остаются в прошлом. 🧘

🔸 GitHub репозиторий
🔸 Документация
🔸 Краткое видео-введение

👉 Подписаться
uvloop — сверхбыстрый event loop для asyncio

Замена стандартному event loop в Python asyncio, написанная на Cython. Ускоряет асинхронные приложения в 2-4 раза.

Основное:

Совместим с asyncio — замена в 2 строки кода

Основан на libuv (как Node.js)

Ускоряет сетевые операции, HTTP-запросы, WebSocket

Поддержка Python 3.8+

Установка:
pip install uvloop


Использование:
import asyncio
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
🔥1
🚀 Jupyter Notebooks станут быстрее благодаря Zuban Language Server!

Zuban Language Server - это продвинутый сервер, предоставляющий мощные возможности для анализа и редактирования кода Python. Теперь он официально поддерживает Jupyter Notebooks. 📝

▪️ Как это работает? Если вы используете VS Code с установленным расширением Zuban, то можете наслаждаться ускоренной работой с .ipynb файлами. Сервер обеспечивает мгновенное автодополнение, проверку ошибок и другие "плюшки", которые делают кодинг приятнее.

Zuban Language Server: GitHub

Zuban extension for VSCode: Marketplace

👉 Подписаться
🔥 PdfDing: Self-hosted PDF менеджер на Python

PdfDing — это минималистичный, но мощный self-hosted PDF менеджер, написанный на Python. Не просто просмотрщик, а полноценная экосистема для работы с документами.

Что он умеет:
📖 Плавный просмотр в браузере на всех устройствах с запоминанием позиции
🏷 Многоуровневая система тегирования и архивирования
✏️ Аннотации, выделение текста и рисунки прямо в PDF
🌙 Тёмный режим, инвертирование цветов, кастомные темы
🔐 SSO через OIDC, безопасность на первом месте
📤 Поделитесь PDF по ссылке или QR-коду
📝 Markdown заметки для организации мыслей

Стек:
Python (68.6%) • Django/DRF • Docker • SQLite/PostgreSQL

Идеально для тех, кто ценит приватность данных и полный контроль над своей инфраструктурой.

github.com/mrmn2/PdfDing
🚀 Kanchi: Новый Бесплатный Мониторинг для Celery

Kanchi разработан с целью предоставить более современный и функциональный взгляд на мониторинг Celery-задач.

Основные преимущества Kanchi:

Поддержка повторных попыток
Обнаружение "осиротевших" задач
Режим реального времени (Live Mode)
Современный интерфейс
Хранение истории

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

🔹 Workflow Engine: Конфигурируйте триггеры, условия и действия для автоматизации процессов. ⚙️
🔹 Продвинутый поиск и фильтрация: Находите нужные задачи по различным критериям. 🔍
🔹 Фильтрация по окружению: Разделяйте задачи по средам (prod, staging и т.д.). 🌐
🔹 Ручное повторное выполнение задач: Возможность запускать задачи повторно непосредственно из интерфейса. 🕹️
🔹 Базовая статистика: Получайте представление о производительности ваших задач. 📊

Проект доступен на GitHub: kanchi.io

👉 Подписаться
PicWish: Ваш бесплатный AI-фоторедактор без ограничений!

PicWish — библиотека на Python, которая открывает двери в мир продвинутой обработки изображений прямо из вашего кода. Забудьте о сложных настройках и скрытых платежах, потому что этот инструмент создан для всех. 🚀

Что умеет PicWish?

🔹 Улучшение качества изображений 🖼️
🔹 Удаление фона
🔹 OCR (оптическое распознавание символов)
🔹 Колоризация 🎨
🔹 Text-To-Image ✍️➡️🖼️

GitHub: https://github.com/d60/picwish

👉 Подписаться
🚀 Pydoll: Революция в Web Automation для Python

Pydoll — это вебдрайвер, который вас не разочарует. Подключается прямо к браузеру через DevTools Protocol, без всяких внешних зависимостей.

Что внури:
• Async с нуля — готово к асинхронности
• Обходит Cloudflare и reCAPTCHA автоматически
• Симулирует реальные клики и движения мыши
• Всего 5 зависимостей

Продвинутые возможности:
📸 Скриншоты и сохранение (в файл или base64)
🎮 Работа с несколькими вкладками
🔍 Интеллектуальный поиск элементов (find() и query())
🛡️ Типобезопасность для лучшей поддержки IDE
📡 Перехват и анализ сетевого трафика

Ссылки:
📚 Сайт с проектом
Github

👉 Подписаться
🧠 Как AI-агенты "думают": Строим своего исследователя на Python!

Задумывались ли вы, как именно искусственный интеллект принимает решения, открывает файлы или выполняет команды? Этот пост — погружение в мир AI-агентов, где наглядно показано, как собрать такого помощника с нуля.

Что умеет агент?

Проект представляет собой локального исследовательского агента, который работает полностью офлайн. Он способен:

Искать информацию
Резюмировать тексты.
Выполнять математические расчеты.
Сохранять заметки в формате Markdown.

В отличие от большинства привычных AI-помощников, которые полагаются на облачные API, этот агент работает полностью локально.

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

💡 Исходный код доступен на GitHub: LocalAgent

👉 Подписаться
⚡️ Ускорили векторные запросы в PostgreSQL в 1000+ раз

Если ты работаешь с RAG и vector search, знай: запросы могут медлить на десятки секунд вместо миллисекунд, если HNSW индексы не используются правильно.

Что сработало:

🔹 vector_ip_ops + <#> — для нормализованных векторов с косинусным расстоянием
🔹 Post-filtering — сначала ищите соседей, потом фильтруйте
🔹 Правильный SQL: SELECT ... WHERE ... ORDER BY distance LIMIT n
🔹 Простые WHERE условия — никаких сложных подзапросов
🔹 HNSW индексы требуют RAM — держите их целиком в памяти

Результат? Запросы упали с десятков секунд до 1-2 мс 🚀

Полная статья

👉 Подписаться
⭐️ httpmorph — высокопроизводительный HTTP клиент для Python

httpmorph — drop-in замена для requests с фокусом на производительность и имитацию браузера.

Ключевые особенности:

API совместимый с requests
Native C реализация + BoringSSL (от Google)
Полная поддержка HTTP/2
Perfect JA3N/JA4 fingerprint Chrome 142
Автоматический пулинг соединений
Session и cookie management

🤖Преимущества для скрейпинга🤖

- Идеально для Cloudflare-защищённых сайтов
- Полная имитация Chrome 142
- Поддержка post-quantum криптографии
- Сжатие сертификатов (Brotli, Zlib)

🔗 GitHub
3