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
PyApp написан на Rust и превращает Python-проекты в готовые .exe или бинарники, которые работают без отдельной установки Python.
В отличие от PyInstaller или Nuitka, это не библиотека, а отдельный инструмент:
- для каждого проекта нужна своя сборка;
- зато конфигурация максимально гибкая и можно тонко настроить процесс.
🔗 Репозиторий: https://github.com/ofek/pyapp
@pythonl
👍24❤9🤩3
Пройдите простой тест и получите доступ к мини-курсу по Python-разработке бесплатно: https://epic.st/g_npyF?erid=2VtzqxgdTD5
❤4
🚀 Энергоэффективный транспайлер Python в Rust
Depyler — это транспайлер, который преобразует код Python в безопасный и производительный Rust, снижая потребление энергии на 75-85%. Он предлагает мощные инструменты для тестирования и верификации, обеспечивая высокое качество кода и поддержку CI/CD.
🚀 Основные моменты:
- Эффективное преобразование Python в Rust
- Поддержка многоуровневого тестирования и верификации
- Интеграция с AI для улучшения качества кода
- Поддержка формата Ruchy для функционального программирования
- Высокие стандарты безопасности и производительности
📌 GitHub: https://github.com/paiml/depyler
@pythonl
Depyler — это транспайлер, который преобразует код Python в безопасный и производительный Rust, снижая потребление энергии на 75-85%. Он предлагает мощные инструменты для тестирования и верификации, обеспечивая высокое качество кода и поддержку CI/CD.
🚀 Основные моменты:
- Эффективное преобразование Python в Rust
- Поддержка многоуровневого тестирования и верификации
- Интеграция с AI для улучшения качества кода
- Поддержка формата Ruchy для функционального программирования
- Высокие стандарты безопасности и производительности
📌 GitHub: https://github.com/paiml/depyler
@pythonl
🔥6👍5😱2❤1
Среди нас есть школьники или студенты техникумов? Тут принесли вам новость.
Яндекс Лицей открывает набор на программу «Веб-разработка на Django»
🟢 Много практики: будете создавать сайты и веб-приложения с нуля, работать с базами данных и научитесь правильно обрабатывать ввод от пользователей.
🟢 Базовые скилы на Django: освоите тестирование кода, окружение и развертывание.
🟢 Интенсивное, трехмесячное обучение с реальным проектом: будете работать в команде над собственным веб-приложением.
Короче, если ждете рекомендации по интенсивному онлайн-обучению Django для новичков — это оно.
В конце обучения, кстати, вам выдадут сертификат. С ним проще поступить на другие направления Яндекс Лицея. Также он даёт дополнительные баллы в некоторых вузах.
🟠 Зарегистрироваться и пройти отбор до 23 сентября можно здесь
Яндекс Лицей открывает набор на программу «Веб-разработка на Django»
🟢 Много практики: будете создавать сайты и веб-приложения с нуля, работать с базами данных и научитесь правильно обрабатывать ввод от пользователей.
🟢 Базовые скилы на Django: освоите тестирование кода, окружение и развертывание.
🟢 Интенсивное, трехмесячное обучение с реальным проектом: будете работать в команде над собственным веб-приложением.
Короче, если ждете рекомендации по интенсивному онлайн-обучению Django для новичков — это оно.
В конце обучения, кстати, вам выдадут сертификат. С ним проще поступить на другие направления Яндекс Лицея. Также он даёт дополнительные баллы в некоторых вузах.
🟠 Зарегистрироваться и пройти отбор до 23 сентября можно здесь
❤6😁3👍1
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
В Яндексе придумали «Ночь музеев» в мире IT, а Сбер, Т-банк, Х5 и Lamoda поддержали идею и присоединились. Если вы не успели зарегистрироваться как офлайн-участник – подключайтесь онлайн.
Можно переключаться между двумя треками.
– шоу для разработчиков со стендап-комиком Севой Ловкачёвым;
– обсуждение pet-проектов и изобретательства среди инженеров;
– юмор в борьбе со стрессами: мемы как способ выжить в бигтехе.
– разберём, чем отличается бигтех в России и за рубежом: каких специалистов ищут компании, есть ли культурные отличия?
– поговорим с Маратом Мавлютовым – руководителем подразделения из Яндекса, разрабатывающего роботов-доставщиков;
– обсудим, как AI помогает разработчикам сейчас и как будет помогать в будущем.
Реклама. ООО "Яндекс". ИНН 7736207543
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥1😁1
PlutoPrint — это лёгкая и удобная библиотека на Python для генерации качественных PDF и изображений напрямую из HTML или XML. Она основана на мощном рендеринг-движке PlutoBook, что делает её идеальной для отчетов, счетов, билетов и визуализаций.
Основные возможности
Поддержка PDF и PNG – можно создавать как статичные изображения, так и печатные документы из
Простота установки и использования — установка через pip install plutoprint; пример для командной строки:
plutoprint input.html output.pdf --size=A4
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍17❤11🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда мы используем модуль 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🤩5🔥3
Отличный курс для тех, кто хочет разобраться в нейронках с нуля от Андрея Карпати (OpenAI/Tesla).
Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:
Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.
https://github.com/karpathy/nn-zero-to-hero/
@pythonl
Внутри бесплатная серия лекций на YouTube (и репа на GitHub), где ты с нуля учишься собирать нейронки. Всё максимально hands-on:
Автор не просто рассказывает теорию, а пишет код вместе с тобой — от самых азов до тренировки сетей.
https://github.com/karpathy/nn-zero-to-hero/
@pythonl
❤24👍10🤩3🔥1
Что это:
Новый инструмент для фильтрации в 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👍6🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда при работе с коллекциями в пайтон нужно быстро сгруппировать данные по ключу и при этом не писать громоздкий цикл с проверками. В таких случаях можно использовать модуль итэртулз и функцию группбай. Она позволяет превратить список в словарь с удобной структурой, где каждый ключ сразу содержит все связанные элементы. Это сильно экономит строки кода и делает его чище.
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
❤13👍9🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет по Python: неожиданное поведение с изменяемыми аргументами по умолчанию
Если в функции задать аргумент по умолчанию как
Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.
Правильный способ — использовать `None` и создавать новый объект внутри функции.
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
Если в функции задать аргумент по умолчанию как
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]
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
❤19👍12🔥5😱2
🎙️ VibeVoice: Инновационная модель TTS для длинных разговоров
VibeVoice — это передовая система синтеза речи, способная генерировать выразительное аудио для длительных разговоров, включая подкасты. Она решает проблемы традиционных TTS-систем, обеспечивая высокую согласованность голосов и естественное взаимодействие между несколькими спикерами.
🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.
📌 GitHub: https://github.com/microsoft/VibeVoice
@pythonl
VibeVoice — это передовая система синтеза речи, способная генерировать выразительное аудио для длительных разговоров, включая подкасты. Она решает проблемы традиционных TTS-систем, обеспечивая высокую согласованность голосов и естественное взаимодействие между несколькими спикерами.
🚀 Основные моменты:
- Синтезирует речь до 90 минут с 4 различными спикерами.
- Использует токенизаторы непрерывной речи для повышения эффективности.
- Поддерживает высокое качество звука при низкой частоте кадров.
- Применяет диффузионные модели для понимания контекста и потока диалога.
📌 GitHub: https://github.com/microsoft/VibeVoice
@pythonl
❤22👍6🔥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.
Быстрый старт:
🔗Github
Что это:
- Ищет опасные конструкции в 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
❤13👍10🔥4
Лучший способ вырасти — это персональный план развития от Senior-инженера из БигТеха.
Вот как все работает:
Мы в ШОРТКАТ провели уже почти 1000 таких мок-интервью и получили оценку 4.9/5, поэтому знаем о чем говорим.
Мы хотим, чтобы у каждого была возможность проверить в деле наш сервис, а потом уже доверить нам свое развитие.
Переходи в нашего бота и забирай свой мок за 900 рублей → @shortcut_py_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10😁5
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥4👍2
✨ Возможности:
- Объединение и разделение файлов
- Поворот и обрезка страниц
- Перестановка и удаление страниц
- Интуитивный drag-and-drop интерфейс
Полностью опенсорс (GPL-3.0).
Идеален, если нужно быстро подготовить PDF к печати или презентации — без сложных настроек.
📌 GitHub
#PDF #opensource #Linux #devtools
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Многие считают, что 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
👍17🔥8❤3😁2