Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.82K photos
79 videos
51 files
4.42K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🔍Тестовое собеседование на Middle Python в четверг с разработчиком из Авито

28 августа(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_py_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19👍5💯1
🏐 Генерация PDF и изображений из HTML в Python

PlutoPrint — это библиотека на Python для преобразования HTML/XML в качественные PDF и изображения.

Отличный инструмент для отчётов, инвойсов, билетов или визуализаций.

Что умеет PlutoPrint:
— Экспорт в PDF или PNG напрямую из HTML/URL
— Поддержка частичного экспорта (диапазоны страниц, реверс)
— Масштабирование и настройка размеров
— Генерация графиков через Matplotlib
— Работа через CLI или API

Установка:
pip install plutoprint


Пример: PDF из HTML
import plutoprint

book = plutoprint.Book(plutoprint.PAGE_SIZE_A4)
book.load_url("hello.html")
book.write_to_pdf("hello.pdf")


📱 Репозиторий

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥3🤔1
Мы сделаем вам предложение, от которого невозможно отказаться 🤌

Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.

Предложение действует только до 1 сентября. Ничего личного, просто математика.

👉 Принять предложение
😢2👍1
🚀 Новое предложение для Python: TypedDict с закрытыми ключами и поддержкой extra_items

TypedDict давно используется для строгой типизации словарей, где известны ключи и их типы. Но до сих пор у него было два ограничения:
➡️ Нельзя было запретить лишние ключи (любая TypedDict допускала дополнительные поля).
➡️ Нельзя было явно указать тип для дополнительных ключей (например, разрешить только строки).

Новый PEP предлагает решить эти проблемы с помощью двух параметров:
➡️ closed=True — создаёт «закрытый» TypedDict, в котором не может быть лишних полей.
➡️ extra_items=... — позволяет указать общий тип для дополнительных ключей.

Как это решение поможет:
— Закрытые TypedDict’ы делают возможным более точный вывод типов для .items() и .values().
— Теперь становится безопасным использовать in для type narrowing.
— API-интерфейсы и legacy-код можно описывать гибко: часть ключей фиксированы, остальные — строго заданного типа.

Пример:
class Movie(TypedDict, closed=True):
name: str
director: str

m: Movie = {"name": "Blade Runner", "director": "Ridley Scott"}
m2: Movie = {"name": "Blade Runner", "year": 1982} Ошибка


А вот пример с extra items:
class MovieBase(TypedDict, extra_items=int):
name: str

movie: MovieBase = {"name": "Blade Runner", "year": 1982}


В итоге разработчики смогут балансировать между строгой типизацией и гибкостью — без костылей вроде --disable-error-code=typeddict-unknown-key.

🔗 Подробнее можно почитать в PEP

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2
📢 Какой сетап идеально подойдёт для разработки AI-агента?

Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.

❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9

Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.

👉 Научим, как строить агентов, которые кодят с тобой
🎉24😍1166👍4🔥4🤩3😁2
🚀 Redis + Python: быстрый старт для разработчиков

Redis (Remote Dictionary Server) — это in-memory хранилище данных, которое можно использовать как:
базу данных
кэш
брокер сообщений или очередь

Главное отличие — данные хранятся в RAM, а не на диске → операции чтения/записи работают за миллисекунды.

✔️ Redis + Python: как подключиться

1⃣ Установить библиотеку:
pip install redis


2⃣ Подключение и тест:
import redis

# подключение
r = redis.Redis(host='localhost', port=6379, db=0)

# запись и чтение
r.set("key", "hello redis")
print(r.get("key")) # b'hello redis'


3⃣ Дальше можно использовать Redis для:
🔘 кэширования результатов запросов
🔘 хранения сессий пользователей
🔘 обработки очередей задач
🔘 мониторинга

Подробнее в статье с примерами

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥1
😃 attrs: простота написания Python-классов без бойлерплейта

attrs — это Python-пакет, который снимает рутину при написании классов и автоматически реализует «ду́ндер»-методы (__init__, __repr__, __eq__ и др.).

📌 Используется даже NASA в миссиях на Марс с 2020 года!

Основная цель — писать лаконичный и корректный код без потерь производительности.

Пример:
from attrs import asdict, define, make_class, Factory

@define
class SomeClass:
a_number: int = 42
list_of_numbers: list[int] = Factory(list)

def hard_math(self, another_number):
return self.a_number + sum(self.list_of_numbers) * another_number

sc = SomeClass(1, [1, 2, 3])
print(sc) # SomeClass(a_number=1, list_of_numbers=[1, 2, 3])
print(sc.hard_math(3)) # 19
print(asdict(sc)) # {'a_number': 1, 'list_of_numbers': [1, 2, 3]}


attrs автоматически добавляет:
✔️ читаемый __repr__
✔️ методы сравнения
✔️ __init__ и управление аргументами
✔️ фабрики значений (Factory)
✔️ конструктор классов на лету (make_class)

📱 Репозиторий

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥3👍2
🔥 Новое в Python 3.14: functools.Placeholder

functools.partial давно помогает замораживать аргументы функций. Но раньше были ограничения: если аргументы были только позиционные, их нельзя было зафиксировать через partial с именованными параметрами.

В Python 3.14 это решает новый functools.Placeholder.

➡️ Пример: удаление пунктуации

До 3.14 приходилось писать обёртку:
import string

_table = str.maketrans("", "", string.punctuation)

def remove_punctuation(s):
return s.translate(_table)

print(remove_punctuation("Hello, world!")) # Hello world


С Placeholder можно напрямую зафиксировать второй аргумент:
from functools import partial, Placeholder
import string

_table = str.maketrans("", "", string.punctuation)
remove_punctuation = partial(str.translate, Placeholder, _table)

print(remove_punctuation("Hello, world!")) # Hello world


Что нужно понимать:
📝 Placeholder резервирует место для аргумента, который придёт позже.
📝 Вызов remove_punctuation("text") превращается в str.translate("text", _table).
📝 Удобнее импортировать короче:
  from functools import Placeholder as _P


Теперь partial можно использовать и с функциями, где аргументы позиционные-only.
Это открывает дорогу к более лаконичному и гибкому коду, без лишних обёрток.

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6🤔3🔥1
Помните игру Portal? Вам давали один инструмент — портальную пушку — и с её помощью вы решали десятки головоломок, переворачивая пространство с ног на голову.

🐍 Python — это ваша портальная пушка. Один инструмент, который позволяет вам «сокращать» путь: автоматизировать рутину, парсить сайты, создавать ботов и решать реальные задачи.

Наш обновлённый курс по Python — это серия идеально выстроенных тестовых камер. Без сухой теории, но с практическими головоломками. Мы, как GLaDOS (только добрее 😉), проведём вас через 30 уроков, от основ до создания финального проекта — вашего собственного Telegram-бота.

И торт — это не ложь. Ваша награда — реальный проект в портфолио и специальная цена 24 990 рублей, которая действует всего 4 дня, до 1 сентября.

👉 Начать тестирование
3👍2🥱2🤔1
😳 Грейдинг умер, ИИ захватил собесы: 5 трендов IT-найма 2025

Помнишь времена, когда можно было сменить работу и сразу получать на 50% больше?

😢 Забудь.

В 2025-м правила игры кардинально изменились — компании боятся ChatGPT на собеседованиях, а поиск работы через LinkedIn стал почти бесполезен.

Разбираем 5 трендов, которые перевернули IT-найм с ног на голову.

🔗 Ссылка на статью

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🥱1
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
🥱5
Какой язык оказал сильное влияние на Python?
Anonymous Quiz
19%
ABC
44%
C++
20%
Perl
18%
Pascal
🤔10👍4😁3
🤓 «Сначала выучу Python идеально, а потом пойду в ML»

Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.

В итоге — месяцы зубрёжки, а до ML руки так и не доходят.

На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.

⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.

👉 ML для старта в Data Science

А для будущих Data Scientist’ов у нас ещё:
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (2-й поток скоро)
🥱81😢1
🌀 Заблуждения программистов: где логика даёт сбой

В разработке есть особый класс ошибок — falsehoods: заблуждения, в которые программисты верят, но которые на практике оказываются ложными.

Обычно это звучит логично. Например:
Email всегда содержит ровно один символ @.


И многие пишут валидацию именно так. Но на деле email может содержать несколько @. Ваш код внезапно «ломается» в реальных условиях.

Таких примеров десятки. Все эти предположения — falsehoods, которые делают софт хрупким.

📚 Существуют целые подборки таких «ложных убеждений». Они помогают расширить взгляд и писать более надёжный код, учитывающий реальные данные и сценарии.

👉 Если хотите стать сильнее как инженер — изучите список falsehoods и держите их в голове.

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔32👍2🌚1