🖥 Transfunctions — библиотека транзакционных функций на Python
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
⚡️ Ускорь проверку качества кода в 10 раз с помощью pre-commit!
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru
🖥Тебе не всегда стоит использовать классы в Python
Python известен простотой и читабельностью — и многие сразу переходят к использованию классов. Но как показывает опыт, классы далеко не всегда нужны:
Python — невероятно гибкий язык, но классы не всегда лучший выбор. В большинстве случаев стандартные типы, функции и библиотеки предлагают более простые и элегантные решения.
🔍 Когда вы можете обойтись без класса
1. Хранение простых данных
Вместо класса:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
point = Point(10, 20)
Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)
# или
@dataclass
class Point:
x: int
y: int
point = Point(10, 20)
Статические утилиты без состояния
Вместо:
class Utils:
@staticmethod
def add(a, b): return a + b
result = Utils.add(3, 4)
используйте просто функцию:
def add(a, b): return a + b
result = add(3, 4)
Группировка констант
Вместо использования отдельного класса:
class Config:
HOST = 'localhost'
PORT = 8080
можно определить модуль с константами:
HOST = 'localhost'
PORT = 8080
Простые изменяемые состояния
Если нужен лишь список или словарь:
inventory = []
inventory.append('apple')
Операции на лету
Вместо класса с одним методом transform:
result = Transformer().transform([1,2,3])
используйте:
result = [x*2 for x in [1,2,3]]
Стандартная библиотека может уже всё заменить
Например, configparser, json, csv и другие модули часто покрывают функциональность управления конфигурациями без необходимости писать класс вручную.
✅ Когда классы всё же уместны
Используйте классы, если вам действительно нужны:
- Состояние и поведение, связанные вместе
- Наследование и расширяемость
- Капсуляция логики и данных
- Чёткая структура и переиспользуемость
Но многие простые сценарии проще и понятнее реализовать без OOP-механизмов
💡 Почему это важно
Это помогает избежать избыточного кода и упростить архитектуру
Повышает читабельность, особенно для новичков или в небольших скриптах
Снижает перегрузку инициализации, особенно там, где функциональность тривиальна
📌 Подробнее (https://adamgrant.micro.blog/2025/07/24/123050.html)
@Python_Community_ru
Python известен простотой и читабельностью — и многие сразу переходят к использованию классов. Но как показывает опыт, классы далеко не всегда нужны:
Python — невероятно гибкий язык, но классы не всегда лучший выбор. В большинстве случаев стандартные типы, функции и библиотеки предлагают более простые и элегантные решения.
🔍 Когда вы можете обойтись без класса
1. Хранение простых данных
Вместо класса:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
point = Point(10, 20)
Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)
# или
@dataclass
class Point:
x: int
y: int
point = Point(10, 20)
Статические утилиты без состояния
Вместо:
class Utils:
@staticmethod
def add(a, b): return a + b
result = Utils.add(3, 4)
используйте просто функцию:
def add(a, b): return a + b
result = add(3, 4)
Группировка констант
Вместо использования отдельного класса:
class Config:
HOST = 'localhost'
PORT = 8080
можно определить модуль с константами:
HOST = 'localhost'
PORT = 8080
Простые изменяемые состояния
Если нужен лишь список или словарь:
inventory = []
inventory.append('apple')
Операции на лету
Вместо класса с одним методом transform:
result = Transformer().transform([1,2,3])
используйте:
result = [x*2 for x in [1,2,3]]
Стандартная библиотека может уже всё заменить
Например, configparser, json, csv и другие модули часто покрывают функциональность управления конфигурациями без необходимости писать класс вручную.
✅ Когда классы всё же уместны
Используйте классы, если вам действительно нужны:
- Состояние и поведение, связанные вместе
- Наследование и расширяемость
- Капсуляция логики и данных
- Чёткая структура и переиспользуемость
Но многие простые сценарии проще и понятнее реализовать без OOP-механизмов
💡 Почему это важно
Это помогает избежать избыточного кода и упростить архитектуру
Повышает читабельность, особенно для новичков или в небольших скриптах
Снижает перегрузку инициализации, особенно там, где функциональность тривиальна
📌 Подробнее (https://adamgrant.micro.blog/2025/07/24/123050.html)
@Python_Community_ru
You might not need a Python class
You might not need a Python class :: Adam Grant —
Python is an incredibly versatile programming language known for its simplicity and readability. Among its features, the ability to use classes for object-oriented programming is both powerful and frequently recommended. However, classes aren’t always the…
🎙️ Higgs Audio v2 — открытая аудио‑модель, которая обходит GPT‑4o-mini-tts
Boson AI выложили модель синтеза речи, обученную на 10+ млн часов аудио — и она уже показывает лучшие результаты, чем GPT‑4o-mini-tts и другие закрытые системы.
🧠 Что умеет Higgs Audio v2:
- Генерирует естественную, эмоциональную речь
- Поддерживает мультиспикерность и клонирование голосов без дообучения
- Работает в zero-shot: достаточно текст + один голосовой пример
- Озвучка в 24 kHz — звук заметно лучше, чем у многих систем с 16 kHz
📊 Побеждает GPT‑4o-mini-tts в бенчмарках:
- 75.7 % win rate на эмоциях
- 55.7 % win rate на вопросах
- Отличные метрики по точности и качеству речи
🛠️ Открыт код + модели:
- Новый AudioVerse токенизатор (эффективность + качество)
- Dual‑FFN архитектура
- Q-learning для адаптивной выразительности
git clone https://github.com/boson-ai/higgs-audio.git
cd higgs-audio
pip install -r requirements.txt
pip install -e .
🔥 GitHub: https://github.com/boson-ai/higgs-audio
@Python_Community_ru
Boson AI выложили модель синтеза речи, обученную на 10+ млн часов аудио — и она уже показывает лучшие результаты, чем GPT‑4o-mini-tts и другие закрытые системы.
🧠 Что умеет Higgs Audio v2:
- Генерирует естественную, эмоциональную речь
- Поддерживает мультиспикерность и клонирование голосов без дообучения
- Работает в zero-shot: достаточно текст + один голосовой пример
- Озвучка в 24 kHz — звук заметно лучше, чем у многих систем с 16 kHz
📊 Побеждает GPT‑4o-mini-tts в бенчмарках:
- 75.7 % win rate на эмоциях
- 55.7 % win rate на вопросах
- Отличные метрики по точности и качеству речи
🛠️ Открыт код + модели:
- Новый AudioVerse токенизатор (эффективность + качество)
- Dual‑FFN архитектура
- Q-learning для адаптивной выразительности
git clone https://github.com/boson-ai/higgs-audio.git
cd higgs-audio
pip install -r requirements.txt
pip install -e .
🔥 GitHub: https://github.com/boson-ai/higgs-audio
@Python_Community_ru
🗂 Copyparty — «всё-в-одном» файловый сервер, запускаемый одной командой Python
Что это такое
- Один файл = полноценный NAS: HTTP/HTTPS, WebDAV, FTP, TFTP, Zeroconf
- Быстрые загрузки с возобновлением (resumable)
- Дедупликация, превью, миниатюры, медиабаза, поиск
- Без внешних зависимостей и БД — один .py-файл или standalone .exe/.apk
- Работает на Linux, Windows, macOS, Raspberry Pi
Для чего полезно :
- Создать домашний медиасервер и быстрый обмен файлами в локальной сети
- Раздача билдов/прошивок внутри команды без S3 и лишней админки
- LAN-party или мероприятия, где нужно «одно место» для обмена файлами
> 📝 Чтобы развернуть, достаточно запустить: python3 copyparty.py
⭐ 20 k+ звёзд на GitHub, активная разработка, лицензия MIT — отличный инструмент!
🖥 Github (https://github.com/9001/copyparty)
@Python_Community_ru
Что это такое
- Один файл = полноценный NAS: HTTP/HTTPS, WebDAV, FTP, TFTP, Zeroconf
- Быстрые загрузки с возобновлением (resumable)
- Дедупликация, превью, миниатюры, медиабаза, поиск
- Без внешних зависимостей и БД — один .py-файл или standalone .exe/.apk
- Работает на Linux, Windows, macOS, Raspberry Pi
Для чего полезно :
- Создать домашний медиасервер и быстрый обмен файлами в локальной сети
- Раздача билдов/прошивок внутри команды без S3 и лишней админки
- LAN-party или мероприятия, где нужно «одно место» для обмена файлами
> 📝 Чтобы развернуть, достаточно запустить: python3 copyparty.py
⭐ 20 k+ звёзд на GitHub, активная разработка, лицензия MIT — отличный инструмент!
🖥 Github (https://github.com/9001/copyparty)
@Python_Community_ru
🚀 sebastien/multiplex — Command‑Line Process Multiplexer
Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.
Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API
🔧 Примеры:
- Запуск двух серверов:
multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"
- Сначала сервер, потом бенчмарк:
multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"
- Сценарий: DB → API → тесты:
multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"
📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub
🔗 GitHub: https://github.com/sebastien/multiplex
🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.
@Python_Community_ru
Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.
Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API
🔧 Примеры:
- Запуск двух серверов:
multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"
- Сначала сервер, потом бенчмарк:
multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"
- Сценарий: DB → API → тесты:
multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"
📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub
🔗 GitHub: https://github.com/sebastien/multiplex
🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.
@Python_Community_ru
🔍 Regex не прощает ошибок… но с Python мы найдем выход!
Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.
🙅♂️ Regex: [] → *Ноль результатов*
✅ difflib то что нам нужно!
С SequenceMatcher ты можешь находить похожие строки даже с опечатками.
📌 Пример:
from difflib import SequenceMatcher
def fuzzy_match(query, products, threshold=0.6):
matches = []
for product in products:
ratio = SequenceMatcher(None, query.lower(), product.lower()).ratio()
if ratio >= threshold:
matches.append((product, f"{ratio:.2f}"))
return matches
🧠 Результат:
[('iPhone 14 Pro Max', '0.88')]
📦 Используй difflib для user-friendly поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций
🔥 Идеально, когда нельзя потерять результат из-за одной буквы!
@Python_Community_ru
Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.
🙅♂️ Regex: [] → *Ноль результатов*
✅ difflib то что нам нужно!
С SequenceMatcher ты можешь находить похожие строки даже с опечатками.
📌 Пример:
from difflib import SequenceMatcher
def fuzzy_match(query, products, threshold=0.6):
matches = []
for product in products:
ratio = SequenceMatcher(None, query.lower(), product.lower()).ratio()
if ratio >= threshold:
matches.append((product, f"{ratio:.2f}"))
return matches
🧠 Результат:
[('iPhone 14 Pro Max', '0.88')]
📦 Используй difflib для user-friendly поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций
🔥 Идеально, когда нельзя потерять результат из-за одной буквы!
@Python_Community_ru
⚡️ GGUF-версии GPT-OSS от Unsloth.
Unsloth конвертировали обе GPT-OSS (20B (https://huggingface.co/unsloth/gpt-oss-20b-GGUF) и 120B (https://huggingface.co/unsloth/gpt-oss-120b-GGUF)) и исправили ошибки, чтобы повысить качество инференса.
🟡Оптимальный сетап:
🟢20B работает со скоростью более 10 токенов/с при полной точности на 14 ГБ оперативной памяти.
🟢120B с полной точностью будет давать >40 токенов/с на примерно 64 ГБ ОЗУ.
Минимальных требований для запуска моделей нет, запуститься можно даже если у вас всего 6 ГБ и только CPU, но инференс будет медленнее.
GPU не требуется , особенно для модели 20B, но его наличие значительно увеличивает скорость вывода (~80 токенов/с). С чем-то вроде H100 можно получить пропускную способность 140 токенов/с, и это значительно быстрее, чем у OpenAI в ChatGPT.
Модели можно запустить через llama.cpp, LM Studio или Open WebUI. Если модель 120B слишком медленная, попробуйте версию 20B - она очень быстрая и работает не хуже o3-mini.
Помимо моделей формата GGUF c полной точностью, Unsloth сделали (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681) версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.
📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune) Unsloth.
🟡Набор моделей (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681)
🟡Документация (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune)
@ai_machinelearning_big_data
#AI #ML #GPTOSS #GGUF #Unsloth
@Python_Community_ru
Unsloth конвертировали обе GPT-OSS (20B (https://huggingface.co/unsloth/gpt-oss-20b-GGUF) и 120B (https://huggingface.co/unsloth/gpt-oss-120b-GGUF)) и исправили ошибки, чтобы повысить качество инференса.
🟡Оптимальный сетап:
🟢20B работает со скоростью более 10 токенов/с при полной точности на 14 ГБ оперативной памяти.
🟢120B с полной точностью будет давать >40 токенов/с на примерно 64 ГБ ОЗУ.
Минимальных требований для запуска моделей нет, запуститься можно даже если у вас всего 6 ГБ и только CPU, но инференс будет медленнее.
GPU не требуется , особенно для модели 20B, но его наличие значительно увеличивает скорость вывода (~80 токенов/с). С чем-то вроде H100 можно получить пропускную способность 140 токенов/с, и это значительно быстрее, чем у OpenAI в ChatGPT.
Модели можно запустить через llama.cpp, LM Studio или Open WebUI. Если модель 120B слишком медленная, попробуйте версию 20B - она очень быстрая и работает не хуже o3-mini.
Помимо моделей формата GGUF c полной точностью, Unsloth сделали (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681) версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.
📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune) Unsloth.
🟡Набор моделей (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681)
🟡Документация (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune)
@ai_machinelearning_big_data
#AI #ML #GPTOSS #GGUF #Unsloth
@Python_Community_ru
🐉 Windmill — open-source платформа для разработки внутренних инструментов, которая превращает скрипты в готовые API, фоновые задачи и веб-интерфейсы. Проект позиционируется как альтернатива коммерческим решениям вроде Retool или Superblocks, но с акцентом на гибкость и self-hosted развёртывание.
Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.
🤖 GitHub (https://github.com/windmill-labs/windmill)
@Python_Community_ru
Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.
🤖 GitHub (https://github.com/windmill-labs/windmill)
@Python_Community_ru
🛞 CrossHair — необычный инструмент для анализа Python-кода, который использует символьное выполнение для поиска ошибок. Вместо традиционных тестов он проверяет корректность функций, анализируя их поведение на основе аннотаций типов и контрактов.
Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.
🤖 GitHub (https://github.com/pschanely/CrossHair)
@Python_Community_ru
Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.
🤖 GitHub (https://github.com/pschanely/CrossHair)
@Python_Community_ru
⚠️ Внимание: фишинг-атака на разработчиков Python. Злоумышленники рассылают поддельные письма от имени PyPI с домена pypj.org, требуя "подтвердить email".
Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.
🔗 Ссылка - *клик* (https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/)
@Python_Community_ru
Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.
🔗 Ссылка - *клик* (https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/)
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Нужно временно отключить все принты — например, в проде или при юнит-тестах?
Этот трюк нужен, чтобы временно отключить принты не удаляя и не комментируя строки вручную.
На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.
import sys, os
from contextlib import contextmanager
@contextmanager
def suppress_print():
saved = sys.stdout
sys.stdout = open(os.devnull, 'w')
yield
sys.stdout.close()
sys.stdout = saved
Пример:
print("Это видно")
with suppress_print():
print("А это — нет")
print("Снова видно")
- вопросы с собеседований Python
@Python_Community_ru
Этот трюк нужен, чтобы временно отключить принты не удаляя и не комментируя строки вручную.
На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.
import sys, os
from contextlib import contextmanager
@contextmanager
def suppress_print():
saved = sys.stdout
sys.stdout = open(os.devnull, 'w')
yield
sys.stdout.close()
sys.stdout = saved
Пример:
print("Это видно")
with suppress_print():
print("А это — нет")
print("Снова видно")
- вопросы с собеседований Python
@Python_Community_ru
🔥1
🖥 Second‑Me
Это ваш “цифровой двойник”: агент, который обучается на ваших заметках, письмах и постах и помогает вести аккаунты в соцсетях.
В 2025 году проект получил крупное обновление — добавлен модуль для управления площадками вроде LinkedIn и Airbnb, а также улучшена персонализация бота.
https://github.com/mindverse/Second-Me
@Python_Community_ru
Это ваш “цифровой двойник”: агент, который обучается на ваших заметках, письмах и постах и помогает вести аккаунты в соцсетях.
В 2025 году проект получил крупное обновление — добавлен модуль для управления площадками вроде LinkedIn и Airbnb, а также улучшена персонализация бота.
https://github.com/mindverse/Second-Me
@Python_Community_ru
📰 Python без GIL: новая эра многопоточности
Недавно в Python 3.13 появилась экспериментальная возможность отключить Global Interpreter Lock — механизм, который десятилетиями ограничивал настоящую многопоточность в Python. Теперь можно сравнить производительность обычной и свободнопоточной версий интерпретатора.
Тесты с CPU-интенсивными задачами показывают ускорение в 3-4 раза при использовании 4 потоков в версии без GIL. Однако за это приходится платить: усложняется сборка мусора, требуется новая система управления памятью, а некоторые объекты становятся просто бессмертными.
Пока free-threaded Python остаётся опциональным, но в будущих версиях, начиная с 3.14, он может стать стандартом. Главный вопрос — насколько быстро сообщество и библиотеки адаптируются к этим изменениям.
🔗 Ссылка - *клик* (https://blog.jetbrains.com/pycharm/2025/07/faster-python-unlocking-the-python-global-interpreter-lock/)
@Python_Community_ru
Недавно в Python 3.13 появилась экспериментальная возможность отключить Global Interpreter Lock — механизм, который десятилетиями ограничивал настоящую многопоточность в Python. Теперь можно сравнить производительность обычной и свободнопоточной версий интерпретатора.
Тесты с CPU-интенсивными задачами показывают ускорение в 3-4 раза при использовании 4 потоков в версии без GIL. Однако за это приходится платить: усложняется сборка мусора, требуется новая система управления памятью, а некоторые объекты становятся просто бессмертными.
Пока free-threaded Python остаётся опциональным, но в будущих версиях, начиная с 3.14, он может стать стандартом. Главный вопрос — насколько быстро сообщество и библиотеки адаптируются к этим изменениям.
🔗 Ссылка - *клик* (https://blog.jetbrains.com/pycharm/2025/07/faster-python-unlocking-the-python-global-interpreter-lock/)
@Python_Community_ru
👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 УСКОРЕНИЕ КОДА ЗА СЧЁТ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ
💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках.
Почему это работает?
В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре.
Пример:
# Медленно: обращение к свойствам объекта в цикле
class Processor:
def __init__(self, data):
self.data = data
def compute(self):
total = 0
for item in self.data:
total += item * item
return total
# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
def __init__(self, data):
self.data = data
def compute(self):
data = self.data # локальная переменная
total = 0
for item in data:
total += item * item
return total
# Прирост в скорости особенно заметен при больших объёмах данных```
@Python_Community_ru
💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках.
Почему это работает?
В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре.
Пример:
# Медленно: обращение к свойствам объекта в цикле
class Processor:
def __init__(self, data):
self.data = data
def compute(self):
total = 0
for item in self.data:
total += item * item
return total
# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
def __init__(self, data):
self.data = data
def compute(self):
data = self.data # локальная переменная
total = 0
for item in data:
total += item * item
return total
# Прирост в скорости особенно заметен при больших объёмах данных```
@Python_Community_ru
🧪 uQLM — движок для SQL‑запросов к LLM, разработанный в CVS Health
Что если к языковой модели можно обращаться как к обычной базе данных?
💡 uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:
✅ Обращаться к LLM как к таблице
✅ Фильтровать, агрегировать и комбинировать ответы
✅ Подключать собственные модели и источники данных
✅ Использовать привычный синтаксис SQL без prompt-инженерии
📌 Пример запроса:
SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;
uQLM работает как прослойка между пользователем и языковой моделью, облегчая интеграцию ИИ в аналитические пайплайны.
🔗 GitHub: https://github.com/cvs-health/uqlm
@Python_Community_ru
Что если к языковой модели можно обращаться как к обычной базе данных?
💡 uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:
✅ Обращаться к LLM как к таблице
✅ Фильтровать, агрегировать и комбинировать ответы
✅ Подключать собственные модели и источники данных
✅ Использовать привычный синтаксис SQL без prompt-инженерии
📌 Пример запроса:
SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;
uQLM работает как прослойка между пользователем и языковой моделью, облегчая интеграцию ИИ в аналитические пайплайны.
🔗 GitHub: https://github.com/cvs-health/uqlm
@Python_Community_ru