Python/ django
64.7K subscribers
2.21K photos
115 videos
48 files
2.94K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
🚀 Lemonade SDK — локальный сервер для LLM с максимальной производительностью

Что это?
Lemonade — это open-source проект (спонсируется AMD), который позволяет запускать большие языковые модели прямо у себя: на ПК, в браузере или на сервере. Всё работает локально, без облака, с поддержкой GPU и NPU, и при этом совместимо со стандартом OpenAI API.

Возможности
- Lemonade Server — локальный сервер, который имитирует OpenAI API. Поддерживает движки llama.cpp (GGUF), ONNX Runtime GenAI и HuggingFace Transformers. Работает с ускорением через Vulkan и ROCm.
- Lemonade CLI — консольный инструмент для запуска моделей, тестов производительности, проверки памяти и точности.
- Python API — простой способ подключить LLM к своим скриптам и приложениям.

Интеграция и совместимость
- Полная поддержка OpenAI API (`/chat/completions`, /completions, /models, /load, /stats и др.).
- SDK доступен для Python, C++, Java, C#, Go, Node.js, Rust, PHP и других языков.

Почему это важно
- Всё работает локально → выше приватность и ниже затраты.
- Автоматическая оптимизация под ваше железо.
- Подходит для продакшн-нагрузок, edge-устройств и экспериментов.
- Удобные инструменты: сервер, CLI, Python API, web-панель.
- Проект активно развивается: свежие релизы выходят каждую неделю.

👉 Репозиторий: [github.com/lemonade-sdk/lemonade](https://github.com/lemonade-sdk/lemonade)

#LLM #AI #Lemonade #OpenSource #AMD

@pythonl
13👍8😁1🤩1
🔥 Thyme: Think Beyond Images

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

🚀 Основные моменты:
- Автономная генерация и выполнение операций с изображениями.
- Комбинация супервайзинга и обучения с подкреплением.
- Поддержка высокоразрешающей перцепции и сложного рассуждения.
- Использует алгоритм GRPO-ATS для оптимизации работы.

📌 GitHub: https://github.com/yfzhang114/Thyme
10👍8🔥3
🔥 Подборка небанальных Python-трюков, которые реально упрощают жизнь разработчику

🌀 1. functools.cached_property — ленивое свойство с кэшем
Позволяет вычислить значение один раз и потом возвращать готовый результат.


from functools import cached_property
import time

class DataFetcher:
@cached_property
def heavy_data(self):
print(" Запрос к API...")
time.sleep(2)
return {"status": "ok", "data": [1, 2, 3]}

obj = DataFetcher()
print(obj.heavy_data) # первый вызов → считает
print(obj.heavy_data) # второй вызов → из кэша


🪄 2. contextlib.suppress — игнорируем ошибки красиво

Вместо громоздкого try/except:


import os
from contextlib import suppress

with suppress(FileNotFoundError):
os.remove("tmp.txt")


👉 Идеально для операций, где ошибка — нормальная ситуация (удаление файла, закрытие сокета и т.п.).

🧩 3. Свой контекстный менеджер через enter / exit

Можно сделать объекты, которые сами открываются и закрываются как файлы.


class DemoResource:
def __enter__(self):
print("🔓 Ресурс открыт")
return self

def __exit__(self, exc_type, exc_value, traceback):
print("🔒 Ресурс закрыт")
if exc_type:
print(f"⚠️ Ошибка: {exc_value}")
return True # подавить исключение

with DemoResource() as res:
print(" Работаем...")
raise ValueError("Что-то пошло не так!")


👉 Отлично для работы с ресурсами: подключение к БД, временные настройки, логирование.

@pythonl
10👍9🔥5
🔥 Старт олимпиады по ИИ и анализу данных — AIDAO.

🚀 В чем кайф:

- Не теоретически возможные задачи, а приближенные к реальным проектам
- Задачи на онлайн-этап готовит научная лаборатория, а финал — один из сервисов Яндекса
- Командная олимпиада, в которой могут принять участие студенты российских и зарубежных вузов
- Живое общение с экспертами и научными сотрудниками
- Масштабный финал олимпиады в Москве: 32 часа хакатона и общения с комьюнити

Международную олимпиаду организуют ФКН НИУ ВШЭ и Яндекс Образование. Главные призы: 1 млн рублей и бонусы при поступлении на магистратуры ФКН ВШЭ. Регистрируем команду на AIDAO по ссылке.
👍74
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️КРАСИВЫЙ JSON ИЗ СЛОВАРЯ ЗА 1 СТРОКУ

Сегодня разберём крутую и полезную фишку — как с помощью Python одной строчкой красиво форматировать словарь в JSON с отступами.


import json

data = {
"user": "Alice",
"age": 30,
"skills": ["Python", "Docker", "ML"],
"active": True,
"projects": {
"current": "Chatbot",
"next": "Data Pipeline"
}
}


pretty_json = json.dumps(data, indent=4, ensure_ascii=False)
print(pretty_json)

Это особенно удобно при отладке, логировании или подготовке данных для API. Больше не нужно вручную настраивать pprint — просто используй json.dumps с параметрами indent и ensure_ascii!
15👍5🔥1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🦀 PyApp — новый способ упаковать Python-программы

PyApp написан на Rust и превращает Python-проекты в готовые .exe или бинарники, которые работают без отдельной установки Python.

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

🔗 Репозиторий: https://github.com/ofek/pyapp

@pythonl
👍249🤩3
🚀 Энергоэффективный транспайлер Python в Rust

Depyler — это транспайлер, который преобразует код Python в безопасный и производительный Rust, снижая потребление энергии на 75-85%. Он предлагает мощные инструменты для тестирования и верификации, обеспечивая высокое качество кода и поддержку CI/CD.

🚀 Основные моменты:
- Эффективное преобразование Python в Rust
- Поддержка многоуровневого тестирования и верификации
- Интеграция с AI для улучшения качества кода
- Поддержка формата Ruchy для функционального программирования
- Высокие стандарты безопасности и производительности

📌 GitHub: https://github.com/paiml/depyler

@pythonl
👍6🔥6😱21
Среди нас есть школьники или студенты техникумов? Тут принесли вам новость.

Яндекс Лицей открывает набор на программу «Веб-разработка на Django»

🟢 Много практики: будете создавать сайты и веб-приложения с нуля, работать с базами данных и научитесь правильно обрабатывать ввод от пользователей.
🟢 Базовые скилы на Django: освоите тестирование кода, окружение и развертывание.
🟢 Интенсивное, трехмесячное обучение с реальным проектом: будете работать в команде над собственным веб-приложением.

Короче, если ждете рекомендации по интенсивному онлайн-обучению Django для новичков — это оно.

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

🟠 Зарегистрироваться и пройти отбор до 23 сентября можно здесь
6😁3👍2
📝 PDF-Extract-Kit — библиотека для извлечения данных из PDF-файлов с поддержкой сложных документов с помощью моделей компьютерного зрения!

🔍 Основные особенности:

🌟 Точное извлечение текста и таблиц из структурированных и неструктурированных PDF, включая многостраничные таблицы и иерархические блоки!

🌟 OCR-интеграция, позволяющая обрабатывать PDF-документы с отсканированными изображениями!

🌟 Гибкий API на Python, что делает его удобным для анализа и интеграции в приложения!

🔐 Лицензия: AGPL-3.0

🖥 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥5👍3
🖥 PlutoPrint — быстрое создание PDF и PNG из HTML с помощью Python

PlutoPrint — это лёгкая и удобная библиотека на Python для генерации качественных PDF и изображений напрямую из HTML или XML. Она основана на мощном рендеринг-движке PlutoBook, что делает её идеальной для отчетов, счетов, билетов и визуализаций.

Основные возможности

Поддержка PDF и PNG – можно создавать как статичные изображения, так и печатные документы из
Простота установки и использования — установка через pip install plutoprint; пример для командной строки:

plutoprint input.html output.pdf --size=A4

🟠 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1711🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Что такое псевдослучайность в Python

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

Главное:
- Если задать одинаковый seed (зерно), генератор выдаст одинаковую последовательность. Это удобно для тестов и экспериментов — результат можно воспроизвести.
- Алгоритм по умолчанию — Mersenne Twister. Он быстрый и подходит для моделирования, но не годится для безопасности.
- Для генерации паролей, токенов и других защищённых данных нужно использовать модуль secrets, который делает случайность криптографически стойкой.

Просто правило:
- Для экспериментов → random с фиксированным seed.
- Для безопасности → secrets.



Пример работы seed
import random

random.seed(42)
print([random.random() for _ in range(3)])

random.seed(42)
print([random.random() for _ in range(3)]) те же числа

Криптографически безопасные значения
import secrets
print(secrets.token_hex(8))
print(secrets.randbelow(10))
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍15🤩6🔥3
Отличный курс для тех, кто хочет разобраться в нейронках с нуля от Андрея Карпати (OpenAI/Tesla).

Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:

Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.

https://github.com/karpathy/nn-zero-to-hero/

@pythonl
24👍10🤩3🔥1
🖥 rest-filters — фильтрационный бэкенд для Django REST framework

Что это:
Новый инструмент для фильтрации в DRF, который расширяет возможности стандартного django-filter.

Особенности
- Использует serializer-поля для разбора и валидации (без Django-форм и виджетов)
- Поддержка группировки фильтров для гибкой логики
- Constraint system — проверка взаимозависимостей между параметрами
- Вложенные фильтры (nested filters) для работы со сложными структурами


Последний релиз — v0.6.0 (21 августа 2025)
- Возможность указывать группу по умолчанию для всего FilterSet (в том числе глобально)
- Поддержка subgroups для более сложных связей между фильтрами
- Новый метод FilterSet.get_combinator() для динамического выбора способа объединения фильтров
- ⚠️ Breaking change: теперь Entry нельзя создавать без указания группы

Почему стоит попробовать
Если стандартные фильтры Django REST кажутся ограниченными, rest-filters даёт:
- фильтрацию через сериализаторы,
- сложные сценарии с группировками и вложенностью,
- гибкость и расширяемость.

🔗 Репозиторий: https://github.com/realsuayip/rest-filters

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python trick: группировка с помощью itertools.groupby

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



from itertools import groupby
from operator import itemgetter

data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
{"category": "B", "value": 40},
]

сортировка обязательна перед groupby
data.sort(key=itemgetter("category"))

grouped = {
key: list(group) for key, group in groupby(data, key=itemgetter("category"))
}

print(grouped)
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍9🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет по Python: неожиданное поведение с изменяемыми аргументами по умолчанию

Если в функции задать аргумент по умолчанию как list или dict, то этот объект создаётся один раз — при определении функции.

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

Правильный способ — использовать `None` и создавать новый объект внутри функции.


def bad_append(x, data=[]):
data.append(x)
return data

print(bad_append(1)) # [1]
print(bad_append(2)) # [1, 2] <-- неожиданно!


def good_append(x, data=None):
if data is None:
data = []
data.append(x)
return data

print(good_append(1)) # [1]
print(good_append(2)) # [2]


Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
20👍13🔥5😱2
🎙️ VibeVoice: Инновационная модель TTS для длинных разговоров

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

🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.

📌 GitHub: https://github.com/microsoft/VibeVoice

@pythonl
24👍7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Hexora — статический анализ Python-скриптов на вредоносные паттерны

Что это:
- Ищет опасные конструкции в Python-коде: чтение буфера обмена, exec/eval (включая обфускации), подозрительные импорты (pickle, ctypes, marshal), загрузку бинарей, длинные base64/hex-строки и т. п.
- Полезен для аудита зависимостей (supply chain), проверки скриптов из Pastebin/GitHub, triage после инцидентов и ревью пакетов из PyPI.

Быстрый старт:

pip install hexora # или: uv tool install hexora
hexora --help

# Проверить одиночный файл
hexora audit path/to/script.py

# Проверить каталог (с удобным выводом)
hexora audit --output-format terminal ./resources/test/

# Аудит пакетов из venv (и фильтрация шумных правил)
hexora audit \
--exclude HX5020,HX5030,HX5040,HX5050,HX5060 \
--min-confidence high \
.venv/lib/python3.11/site-packages/


🔗Github
15👍11🔥4
👩‍💻 Vicinity — легковесное хранилище векторов с поддержкой гибких бэкендов для поиска ближайших соседей!

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

🌟 Ключевые особенности Vicinity включают минимальные зависимости, высокую производительность, поддержку динамического обновления данных (вставка и удаление элементов), сериализацию для сохранения и загрузки хранилищ векторов, а также простоту использования. Поддерживаемые бэкенды включают BASIC, HNSW, FAISS, ANNOY, PyNNDescent и другие, каждый из которых предлагает свои параметры настройки для оптимизации поиска.

🔐 Лицензия: MIT

🖥 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥5👍3
🆕 PDF Arranger — лёгкий и удобный инструмент для работы с PDF.

Возможности:
- Объединение и разделение файлов
- Поворот и обрезка страниц
- Перестановка и удаление страниц
- Интуитивный drag-and-drop интерфейс

💻 Доступен для Linux, Windows (включая портативную версию) и BSD.
Полностью опенсорс (GPL-3.0).

Идеален, если нужно быстро подготовить PDF к печати или презентации — без сложных настроек.

📌 GitHub

#PDF #opensource #Linux #devtools

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Полезный совет по ускорению Python-кода

Многие считают, что list comprehension всегда оптимален. Но при больших объёмах данных связка map + filter может быть быстрее: она выполняется на уровне C и не создаёт лишних промежуточных структур.

Когда нужно одновременно фильтровать и преобразовывать элементы, map + filter часто выигрывает по скорости.


def transform(x):
return x * x

data = range(10_000_000)

# Медленнее: создаём лишние промежуточные объекты
res1 = [transform(x) for x in data if x % 2 == 0]

# Быстрее: map и filter не создают лишних списков
res2 = list(map(transform, filter(lambda x: x % 2 == 0, data)))

print(res1[:5], res2[:5])


@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥105😁3
🖥 Новинка: `pyx` — Python-native пакетный реестр от Astral (в Beta)

Что такое `pyx`:
- Python-native registry, часть платформы Astral и продвинутый бэкенд для uv.
- Обеспечивает более быструю, безопасную и GPU-осознанную работу с пакетами (как приватными, так и публичными, включая PyPI и PyTorch).

Почему это важно:
- Следует философии Astral: поддержка open-source, без превращения инструментов в конкурирующие SaaS-продукты.
- Первый шаг к вертикальной интеграции с существующими open-source инструментами.
- Уже в бета-версии с ранними партнёрами — Ramp, Intercom и fal.

Впечатление:
pyx выглядит как обдуманный, open-source-ориентированный подход к packaging infrastructure, который может сделать разработку Python-экосистемы быстрее и мощнее.

https://simonwillison.net/2025/Aug/13/pyx/#atom-tag

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍4🔥3😁3