pyproglib | Unsorted

Telegram-канал pyproglib - Библиотека питониста | Python, Django, Flask

39269

Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Курс по ML: https://cl Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36

Subscribe to a channel

Библиотека питониста | Python, Django, Flask

🐍 В Python может появиться `!p` для красивого вывода объектов (PEP 813)

В Python хотят добавить новый форматтер !p для pretty print прямо в f-string.

Сейчас:


print(data)


Часто превращается в нечитаемую стену текста. Особенно если это большой dict, JSON или сложный объект.

Решение:

print(f"{data!p}")


Python автоматически красиво форматирует вывод — примерно как pprint.pformat().

Больше не нужно импортировать pprint ради дебага.

Ещё интереснее — __pprint__()

У классов может появиться специальный метод:

__pprint__()


Он позволит кастомизировать красивый вывод объекта. Например, сейчас repr() часто выглядит странно или перегруженно.

А с __pprint__() можно явно указать:
— какие поля показывать
— какие скрывать
— какие значения опускать по умолчанию

То есть объект будет отображаться так, как удобно человеку.

Почему это полезно

Во время дебага мы постоянно делаем:

print(variable)


Но сложные структуры читаются ужасно. !p превращает вывод в человекочитаемый формат — прямо внутри f-string.

Это пока только Draft PEP для Python 3.16. То есть идея ещё обсуждается и может измениться. Но если примут — debugging в Python станет заметно приятнее.

👇 Как думаете: полезная фича или очередной синтаксический сахар?

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

✔️ Основные концепции ООП: простыми словами и с понятными примерами

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

Разбираемся без сложной теории.

1️⃣ Инкапсуляция

Скрывайте внутренние данные за публичными методами.

Идея простая: объект сам контролирует, как с ним взаимодействуют.

Например, банковский аккаунт хранит баланс и PIN «внутри себя». Изменить баланс напрямую нельзя — только через специальные методы пополнения или списания.

Так код становится безопаснее: никто случайно не сломает внутреннюю логику.

2️⃣ Абстракция

Давайте простой интерфейс, скрывая сложность внутри.

Пользователю класса не обязательно знать, как всё устроено — важно понимать, как этим пользоваться.

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

Но для разработчика всё сводится к одному действию: «отправить письмо».

Сложность скрыта — интерфейс остаётся простым.

3️⃣ Наследование

Переиспользуйте общую логику и расширяйте поведение.

Вместо копирования кода можно вынести общую логику в базовый класс.

Например, есть общий класс «Животное». У всех животных может быть одинаковая структура, но каждое из них издаёт свой звук.

Собака — лает, кошка — мяукает.

Общее поведение хранится в одном месте, а различия переопределяются.

4️⃣ Полиморфизм

Один интерфейс — много реализаций.

Код может одинаково работать с разными объектами.

Например, есть разные фигуры: круг, квадрат, треугольник.

У каждой фигуры свой способ отрисовки, но внешний код работает с ними одинаково — просто вызывает действие «нарисовать».

Не важно, что именно передали — важна общая договорённость.

Какая концепция ООП в своё время казалась вам самой непонятной? 👇

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 PyTorch 2.12: один из самых сильных релизов для performance

Команда PyTorch выкатила v2.12, а заметный шаг в сторону production ML и ускорения вычислений.

До 100× быстрее `linalg.eigh` на CUDA
Batched eigendecomposition теперь работает в разы быстрее благодаря новому backend selection через cuSolver. Для scientific computing и ML-задач это может превращать минуты вычислений в секунды.

🧠 Новый `torch.accelerator.Graph`
Появился единый API для graph capture/replay across hardware — CUDA, XPU и другие backends. Ещё один шаг к hardware-agnostic PyTorch.

🚀 Fused Adagrad optimizer
Adagrad(fused=True) теперь выполняется в одном CUDA kernel — меньше overhead, быстрее обучение.

📦 Экспорт сильно сжатых моделей
torch.export теперь поддерживает Microscaling (MX) quantization, что важно для дешёвого inference и edge deployment LLM.

🎮 CUDA Graphs + control flow
torch.cond теперь можно запускать внутри CUDA Graphs — branching начинает жить прямо на GPU.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Talanto.work - сайт для всех, кто ищет работу в IT.

Мы спарсили за вас все возможные телеграм каналы и сайты с вакансиями исключительно из сферы IT.
Вам не нужно следить за тем, когда выходит вакансия и где, всё это уже сделано за вас.

Просто настройте фильтры у нас на сайте и получайте уведомления в телегу, как только вакансия вышла.

Например: все вакансии Python

На talanto.work собрано 28.000+ вакансий из разных .ru и иностранных сайтов: разработка, QA, аналитика, DevOps, продакт, дизайн, менеджмент и другие IT/Digital-направления.

Более 1700 вакансий за последний месяц из телеграм каналов.

Что еще есть на сайте:

🟠 Фильтры для нормального поиска
Можно искать по стеку, грейду, зарплате, стране, формату работы, релокации и типу занятости.

🟠 Разбор резюме
Загружаете CV и получаете конкретные рекомендации: что улучшить, какие навыки добавить, где слабая структура и что может мешать пройти ATS.

🟠Проверка соответствия вакансии и резюме
Рядом с вакансией всегда есть кнопочка узнать соответствие, насколько ваш профиль ей подходит. Сервис покажет процент совпадения, сильные стороны и пробелы в резюме

🟠Сопроводительное письмо за 10 секунд
Вставляете вакансию и получаете персональное письмо под конкретную компанию и роль, а не шаблон “прошу рассмотреть мою кандидатуру”.

🟠Уведомления в Telegram
Задаёте фильтры один раз и бот присылает новые подходящие вакансии прямо в Telegram.

Поиск работы в IT сейчас и так сложный. Мы хотим, чтобы вы тратили меньше времени на листание сайтов и больше на точные отклики туда, где у вас реально есть шанс.

✈️ 28.000+ вакансий
🟢Бот с уведомлениями о ваших вакансиях: @TalantoWorkBot
🟢Написать сопровод
🟢Разобрать резюме
🟢Проверить соответствие резюме вакансиям

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqvSFhV9

Читать полностью…

Библиотека питониста | Python, Django, Flask

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

#развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

📘 Книга: Learn Algorithms Through Python

Визуальный гид по алгоритмам и структурам данных на Python.

Параллельно можно усилить базу через практику: онлайн-курс по математике для Data Science от Proglib Academy — 30 уроков с задачами, тестами и финальным проектом в портфолио, чтобы закрепить алгоритмы уже на прикладных кейсах.

📍 Навигация: ВакансииЗадачиСобесы

Библиотека дата-сайентиста

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Знакомьтесь с экспертом Proglib.academy: Эмиль Сатаев

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

🏃‍♀️ Уже 14 мая Эмиль проведет открытый вебинар!

Обсудим самую «больную» тему: «Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало».

🗓 Когда: 14 мая в 19:00 (Мск)

Почему Эмиля стоит послушать:

🟣 8+ лет в разработке (Backend и Frontend)

Прошел путь от фулстека до Backend Platform Developer в SMIT.Studio.


🟣 Международный исследовательский опыт
Работал исследователем в Институте ИИ НИУ ВШЭ и в Национальном университете Сингапура (NUS).


🟣 Преподаватель-практик
Ведет семинары в НИУ ВШЭ, в том числе по проектированию и разработке агентских систем.


🟣 Мастер интеграции AI в Backend
Его главная суперсила — умение правильно встраивать LLM через API, выстраивать workflow и агентную логику в сложных распределенных системах.


🔗 Зарегистрироваться на вебинар

Читать полностью…

Библиотека питониста | Python, Django, Flask

📦 Dependency version pinning ≠ security patching

Интересный и важный разбор о том, как стоит (и не стоит) управлять версиями зависимостей в Python-проектах.

Если вы — разработчик библиотеки, то:


dependencies = [
"urllib3>=2",
]


— это нормальная практика для указания совместимости, а не безопасности.

❗ Но изменение на:

"urllib3>=2.6.3"


из-за уязвимости — обычно плохая идея для библиотек.

⚠️ Почему нельзя фиксировать security через version specifiers

Библиотеки:
• должны поддерживать широкий диапазон версий
• отвечают за совместимость, а не за безопасность пользователей
• не должны “жёстко чинить” уязвимости зависимостей

Приложения:
• используют lock-файлы (requirements.txt, uv.lock и т.д.)
• фиксируют конкретные безопасные версии
• отвечают за безопасность своего runtime

💥 Проблема массового эффекта

Если бы все библиотеки начали обновлять зависимости из-за CVE:
• urllib3 → 10,000+ зависимостей
• numpy → ~80,000
• requests → ~70,000
• pandas → ~55,000

👉 одна уязвимость = тысячи релизов ежедневно

Это создало бы постоянный "release storm", который не масштабируется.

Есть исключения:
• если фикс уязвимости требует несовместимого API
• если зависимость больше не поддерживает безопасные версии
• если обновление не ломает обратную совместимость

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

📍 Навигация: ВакансииЗадачиСобесы

Библиотека дата-сайентиста

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

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

#развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Python Internals: в чём разница между `.__getitem__()`, `.__getattr__()`, `.__getattribute__()` и `.__get__()`

Если вы когда-либо работали с Python internals, создавали собственные классы, ORM, прокси-объекты, lazy loading или просто пытались понять, как работает доступ к атрибутам — этот разбор обязателен к прочтению.

На первый взгляд все эти dunder-методы выглядят одинаково: они что-то «получают» (`get`). Но в действительности каждый отвечает за отдельный механизм Python.

1️⃣ .__getitem__()

Этот метод вызывается, когда вы используете квадратные скобки:


obj[key]


Python автоматически превращает это в:

obj.__getitem__(key)


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

Например, можно создать класс, который:
• принимает несколько ключей сразу
• ограничивает доступ к данным
• меняет поведение индексации
• реализует собственную логику выборки

2️⃣ .__getattribute__()

Каждый раз, когда вы пишете:

obj.attribute


Python ВСЕГДА сначала вызывает:

obj.__getattribute__("attribute")


Именно этот метод решает:
— является ли объект data descriptor
— есть ли attribute у экземпляра (`instance.__dict__`)
— существует ли non-data descriptor
— есть ли атрибут у класса
— нужно ли запускать fallback-механизм

⚠️ Переопределять .__getattribute__() нужно крайне осторожно — легко сломать доступ ко всем атрибутам объекта.

3️⃣ .__getattr__()

Этот метод вызывается только если Python не нашёл атрибут обычным способом.

Например:

obj.username


Если username не существует, Python попробует:

obj.__getattr__("username")


Это полезно для:
• lazy loading
• динамических атрибутов
• delegation/proxy objects
• ORM-моделей
• API wrappers

Например, можно автоматически брать значения из словаря:

obj.name


вместо:

obj["name"]


4️⃣ .__get__()

Самый недооценённый механизм Python.

Если класс реализует:

__get__()


то он становится descriptor.

Descriptors лежат в основе:
@property
• bound methods
classmethod
staticmethod
• ORM field systems (Django, SQLAlchemy)
• validation frameworks

Python использует descriptors буквально повсюду.

🔥 Порядок поиска атрибута в Python

Когда вызывается:

obj.attribute


Python проверяет:
1. Data descriptor (`__get__ + __set__`)
2. Instance attribute (`obj.__dict__`)
3. Non-data descriptor (`__get__`)
4. Class attribute
5. .__getattr__() как fallback

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🗓 14 мая в 19:00 (Мск) встречаемся в онлайне.

Тема: Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало.

В кружке выше Эмиль Сатаев рассказал, какие именно проблемы с LLM в проде будем разбирать.

Что в программе:

- Разберем реальные кейсы стартапов и ограничения LLM.
- Обсудим рабочие архитектуры: RAG, human-in-the-loop, контроль качества.
- Ответим на ваши вопросы и разберем кейсы участников.


🎁 Бонусы: в конце вебинара подарим промокод на скидку 10.000 ₽ на курсы и разыграем подписки на полезные AI-сервисы.

👉 Зарегистрироваться на вебинар

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Состояние типизации в Django к 2026

Django появился за 10 лет до того, как в Python стандартизировали аннотации типов, поэтому подружить их — задача не из легких.

Вот краткий срез того, как обстоят дела сегодня:

1️⃣ Золотой стандарт: django-stubs + mypy
Если вам нужна максимальная точность, это ваш выбор. Пакет поставляется с плагином для mypy, который «разбирает» динамическую магию Django.

Минус: Это медленно. Очень. На больших проектах mypy может работать минуты, что делает его неудобным для использования прямо в редакторе кода. Часто его оставляют только для CI.

2️⃣ Быстрые альтернативы: Pyright, Ty, Pyrefly
Эти чекеры работают за секунды, но не поддерживают плагины mypy. Итог — куча ложных срабатываний (false positives).

Типичная ошибка: Чекер не видит поле .id или связанные имена (related names).

Лайфхак: Вместо .id используйте .pk — инструменты обычно понимают его лучше. Или же явно определяйте id = models.AutoField(primary_key=True) в модели.

3️⃣ Новый подход: Django-Mantle
Интересная библиотека, которая предлагает вообще не работать с динамическими типами моделей напрямую. Вместо этого вы описываете attrs`-классы и используете их как типизированные DTO для данных из БД. Если логика работает с `BookmarkAttrs, а не с Bookmark(models.Model), проблем с типами не будет.

4️⃣ Проблема версий
Сторонние библиотеки типов (django-stubs/django-types) часто отстают от релизов Django. Например, Django 6.0 вышла 3 месяца назад, а полной поддержки типов для неё всё ещё нет.

Хорошие новости: управляющий совет Django одобрил внедрение типов в само ядро фреймворка! Также есть надежда на PEP-0827, который может добавить в Python новые возможности для типизации динамических структур без специальных плагинов.

🔛 Полный пост

Читать полностью…

Библиотека питониста | Python, Django, Flask

🛠 Шпаргалка по lambda-функциям в Python

lambda — это не «замена функций», а способ написать простую логику там, где она нужна.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎤 Ваши знания по ИИ-агентам + наша аудитория в 1 млн человек = профит

Мы в Proglib активно качаем тему ИИ-агентов. Если вы в теме, то у нас есть предложение 👇

Что с нас?

- Огромный охват: пропиарим ваши соцсети и продукты на 1 000 000+ айтишников.
- Личный бренд: станете узнаваемым экспертом в самой горячей нише 2026 года.
- Никакой рутины: наши редакторы сами упакуют ваши мысли в крутые посты.

Что с вас?

Любой экспертный контент по ИИ-агентам: кейсы из прода, шпаргалки, статьи, наработки по стеку (LangGraph, CrewAI, AutoGen и др.) или просто мысли по архитектуре.

👉 Стать экспертом и заявить о себе

Читать полностью…

Библиотека питониста | Python, Django, Flask

10 концепций Docker, которые должен освоить каждый разработчик

✔️ Образы — шаблоны только для чтения, используемые для создания контейнеров

✔️ Контейнеры — легковесные, изолированные среды для запуска приложений

✔️ Dockerfile — инструкции для сборки пользовательских образов

✔️ Docker Hub — реестр для хранения и обмена образами

✔️ Томы — сохраняют данные вне контейнеров

✔️ Сети — обеспечивают взаимодействие между контейнерами

✔️ Docker Compose — определяет и запускает приложения из нескольких контейнеров

✔️ Порты — открывают сервисы контейнеров для хоста

✔️ Слои — оптимизируют сборку образов и кэширование

✔️ Реестр — управляет и распространяет образы контейнеров

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas

Читать полностью…

Библиотека питониста | Python, Django, Flask

🚀 FastAPI с нуля: за 5 минут до работающего API

FastAPI — один из самых быстрых Python-фреймворков для построения API. Автодокументация, типизация, async из коробки.

Поехали.

📦 Установка


pip install fastapi uvicorn


🏗 Минимальный сервер


# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
return {"message": "Hello, World!"}


Запуск:

uvicorn main:app --reload


Откройте http://127.0.0.1:8000 — API уже отвечает.
Бонус: http://127.0.0.1:8000/docs — интерактивная Swagger-документация, сгенерирована автоматически.

📐 Pydantic-модели — валидация входных данных


from pydantic import BaseModel

class User(BaseModel):
name: str
age: int
email: str

@app.post("/users")
def create_user(user: User):
return {"created": user.name}


FastAPI сам проверит типы и вернёт понятную ошибку, если придут неверные данные. Никакого ручного if not isinstance(...).

🔍 Path & Query параметры


# /items/42
@app.get("/items/{item_id}")
def get_item(item_id: int, q: str = None):
return {"id": item_id, "query": q}


item_id — из URL, q — из query string (`?q=test`). Всё типизировано.

⚡️ Async endpoint — когда нужен I/O


import asyncio

@app.get("/slow")
async def slow_endpoint():
await asyncio.sleep(1) # не блокирует сервер
return {"status": "done"}


Используйте async def когда делаете запросы к БД или внешним API — сервер продолжает обрабатывать другие запросы пока ждёт.

🗂 Структура проекта (когда вырастет)


project/
├── main.py
├── routers/
│ ├── users.py
│ └── items.py
└── models/
└── schemas.py


Роутеры подключаются так:

from routers import users
app.include_router(users.router, prefix="/users")


✅ Итого за 5 минут:

GET / POST / PUT / DELETE эндпоинты
— Валидация через Pydantic
— Автодокументация на /docs
— Async поддержка
— Масштабируемая структура

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔐 secure: библиотека для тех, кто устал от copy-paste security headers

Если делаете backend на Python, то наверняка сталкивались с хаосом вокруг security headers:

Content-Security-Policy
X-Frame-Options
Strict-Transport-Security
Permissions-Policy

Обычно это превращается в copy-paste по middleware, hooks и handlers.

secure предлагает более аккуратный подход — один объект политики безопасности для всего приложения.

Например, в FastAPI достаточно подключить middleware:


from fastapi import FastAPI
from secure import Secure
from secure.middleware import SecureASGIMiddleware

app = FastAPI()
secure_headers = Secure.with_default_headers()

app.add_middleware(
SecureASGIMiddleware,
secure=secure_headers
)


Что полезного:
✅ единая конфигурация security headers
✅ работает через ASGI / WSGI middleware
✅ готовые presets + кастомизация
✅ удобная настройка CSP и Permissions Policy
✅ без зависимостей

Под капотом — просто способ сделать security headers явными, централизованными и поддерживаемыми, вместо магических строк, разбросанных по проекту.

Полезная штука для FastAPI, Django, Flask и других Python web apps.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🗓 Уже через пару часов стартует вебинар!

Тема:

Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало


Ждем вас сегодня в 19:00 по московскому времени. Не пропустите начало, будет много практики!

👉 Успей занять место

Читать полностью…

Библиотека питониста | Python, Django, Flask

🧠 Pyrefly v1.0: быстрый type checker для Python вышел в stable

Pyrefly официально достиг версии 1.0 и готов к production.

Что изменилось

Производительность
• до 125× быстрее обновление diagnostics после сохранения файла
• на 20–36% быстрее полная проверка больших проектов (PyTorch, Pandas)
• 2–3× быстрее индексация проекта
• до 60% меньше памяти

🛠 Новые пресеты конфигурации
Появились режимы basic, strict, legacy (для миграции с mypy) и другие — можно быстро настроить уровень строгости без ручной конфигурации.

🧩 Лучше понимает реальный Python
Меньше false positive, улучшена работа с:

* dataclasses
* enums
* ParamSpec
* overloads
* type narrowing

📓 Поддержка экосистемы
Лучше работает с Django, Pydantic, Pytest и теперь полноценно поддерживает Jupyter notebooks (.ipynb) — почти как обычные .py файлы.

🤖 Что дальше
Команда делает ставку на AI-агентов и экспериментальную проверку tensor shapes в PyTorch.

🔗 Ссылка на релиз

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🧠 MCP на Python: самый простой пример

LLM сама по себе не умеет работать с реальным миром. Она не знает время, дату и не может выполнять код — только генерирует текст.

MCP (Model Context Protocol) решает это, добавляя модели внешние инструменты на Python.

В примере из статьи:
🕒 функция get_current_time() — возвращает текущее время
📅 функция get_current_date() — возвращает текущую дату
🤖 модель через Ollama (llama3.2) может вызывать их по необходимости

Запрос пользователя → модель понимает, нужен ли инструмент → вызывает Python-функцию через MCP → получает результат → формирует ответ

Пример:

«Сколько сейчас времени?»
→ модель вызывает get_current_time()
→ получает 10:35:15
→ отвечает уже человеческим текстом

📍 Навигация: ВакансииЗадачиСобесы

Библиотека дата-сайентиста

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🚨 Django выпустил срочные security-обновления: 6.0.5 и 5.2.14

Команда Django выпустила новые патч-релизы Django 6.0.5 и Django 5.2.14, закрывающие сразу 3 уязвимости безопасности.

🔹 CVE-2026-5766 — DoS через загрузку файлов в ASGI

Обнаружена возможность обхода лимита FILE_UPLOAD_MAX_MEMORY_SIZE в ASGI-запросах при некорректном или заниженном Content-Length.

Злоумышленник потенциально мог отправить слишком большой файл, который попадал в память сервера, вызывая деградацию сервиса или проблемы с производительностью.

Важно: Django напоминает, что ограничение загрузки файлов нужно настраивать не только в Django, но и на уровне веб-сервера (Nginx, Apache, reverse proxy).

🔹 CVE-2026-35192 — Session Fixation через кешируемые страницы

Проблема затрагивает проекты, где включён:


SESSION_SAVE_EVERY_REQUEST = True


и используются публично кешируемые страницы.

В некоторых сценариях злоумышленник мог получить доступ к пользовательской сессии после посещения кешированной страницы.

🔹 CVE-2026-6907 — риск утечки приватных данных через `Vary: *`

Ошибка в UpdateCacheMiddleware могла привести к тому, что запросы с заголовком:

Vary: *


ошибочно кешировались.

Приватные данные могли случайно попасть в cache и быть отданы другим пользователям.

Какие версии затронуты:
— Django main
— Django 6.0
— Django 5.2

По политике безопасности Django все три проблемы получили уровень Low severity, но это всё ещё security fixes для production, особенно если вы используете ASGI, caching или кастомную работу с sessions.

📍 Навигация: ВакансииЗадачиСобесы

Библиотека дата-сайентиста

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Это очень полезный репозиторий с 300+ инженерными статьями от крупных tech-компаний про реальные проблемы масштабирования.

Но читать всё подряд не стоит — лучше по темам. Для старта:
— Netflix / Uber / Slack / Stripe — архитектура и масштабирование,
— Figma / DoorDash / GitHub — поиск и производительность,
— Meta / LinkedIn / Netflix — ML-системы.

Минус: часть статей — немного «инженерный маркетинг», а не чистая практика. Но как источник реальных кейсов — очень сильная подборка.

🔗 Ссылка на ресурс

📍 Навигация: ВакансииЗадачиСобесы

Библиотека дата-сайентиста

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Python 3.14.5 Release Candidate уже доступен — и есть важные изменения

Команда Python выпустила Python 3.14.5rc1 — release candidate пятого maintenance-релиза ветки 3.14. Обновление включает 113+ исправлений багов, улучшений сборки и документации.

Но самое интересное — изменение в работе Garbage Collector (GC).

🔥 Что изменилось

Инкрементальный garbage collector, который использовался в Python 3.14.0–3.14.4, откатили обратно к генерационному GC из Python 3.13.

Причина — многочисленные сообщения о повышенном потреблении памяти в production-средах.

Это важный сигнал для backend-разработчиков, ML/DS-команд и тех, кто запускает Python-сервисы под высокой нагрузкой: изменения в memory management могут существенно влиять на стабильность и стоимость инфраструктуры.

🚀 Ключевые возможности Python 3.14

Ветка 3.14 получила действительно крупные изменения:

PEP 779 — Free-threaded Python
Официальная поддержка Python без GIL — большой шаг к настоящему multi-threading.

PEP 649 — Deferred evaluation of annotations
Аннотации теперь вычисляются лениво, улучшая typing semantics.

PEP 750 — Template strings (t-strings)
Новый механизм кастомной обработки строк, похожий на f-strings.

PEP 734 — Multiple interpreters
Несколько интерпретаторов прямо в standard library.

PEP 784 — `compression.zstd`
Поддержка алгоритма сжатия Zstandard в stdlib.

Experimental JIT Compiler
Для macOS и Windows доступен экспериментальный JIT.

Remote attach в `pdb`
Теперь debugger может подключаться к уже запущенному Python process.

UUID v6–v8
Новые версии UUID и ускоренная генерация старых.

✅ Улучшенные error messages
✅ Цветной CLI для argparse, json, calendar, unittest
✅ Новый интерфейс для инспекции running Python processes

Это preview release, поэтому использовать в production пока не рекомендуется.


🖥 Подробнее

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Python Tutorial: практическое руководство по изучению Python

Этот туториал поможет освоить язык от базовых концепций до более продвинутых тем — с примерами, объяснениями и практическим подходом.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

⚠️ Небольшой совет по Python: как настроить поведение списка

Класс Python UserList из модуля collections используется для создания пользовательских объектов, похожих на списки, с настраиваемым поведением. Он служит базовым классом, от которого можно наследоваться, если вы хотите создать собственные структуры данных, работающие как списки, но с дополнительными методами и особенностями.

Предположим, вы хотите создать список с изменённым методом append(), который разрешает добавлять только чётные числа. Код ниже показывает, как это можно реализовать с помощью UserList.

В этом примере метод append() переопределён так, чтобы в список можно было добавлять только чётные числа. Если передаётся нечётное число, выводится сообщение о том, что нечётные числа не разрешены. Метод sort() также переопределён — теперь список всегда сортируется в обратном порядке.

Когда объект obj вызывается с аргументом 3, который является нечётным числом, выводится сообщение "Non-even numbers not allowed" («Нечётные числа не допускаются»), а список остаётся без изменений.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Селф-хостинг для разработчика: дорожная карта цифрового суверенитета в 2026 году

Селф-хостинг сегодня — это прагматичный контроль над своими данными.

Вот как питонисту перехватить рычаги управления:

🛡 Инструментарий: YAML вместо Bash-скриптов
Забудьте про настройку Linux-сервисов. Если приложение не запускается в Docker, оно не стоит вашего времени.

Docker Compose стал универсальным языком: 15 строк YAML-конфига заменяют часы копания в systemd и init`-скриптах. Для Python-разработчика это так же естественно, как `requirements.txt.

🛡 Безопасность без дыр в роутере

Используйте Tailscale. Он создает зашифрованную Mesh-сеть (VPN) между вашими устройствами, используя WireGuard. Вы получаете доступ к домашнему серверу из любой точки мира, не подставляя его под атаки ботнетов.

🛡 ZFS: Снапшоты как страховка от «кривых» апдейтов

Файловая система ZFS позволяет делать мгновенные снимки (снапшоты) перед любым рискованным действием. Если миграция пошла не так — откат до рабочего состояния занимает секунды.

🛡 ИИ — ваш личный DevOps на аутсорсе

Инструменты вроде Codex или Claude Code радикально снижают порог входа в системное администрирование. Они могут не только писать скрипты для бэкапов, но и диагностировать «железные» проблемы (например, умирающий SSD) по косвенным признакам задержек записи ещё до того, как сработает SMART.

С чего начать:
1. Immich — мощная замена Google Photos с AI-распознаванием лиц, работающая на вашем железе.
2. AdGuard Home / Pi-hole — блокировка рекламы и трекинга на уровне DNS для всех устройств в доме (включая ТВ и мобильные игры).
3. Home Assistant — объединение всех «умных» устройств в одну локальную сеть без зависимости от вендорских облаков.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Шпаргалка по uv: 40+ команд, которые реально пригодятся


Удобную шпаргалка с командами, которые закрывают почти весь повседневный workflow:
— создание проектов
— управление зависимостями
— работа с версиями Python
— запуск скриптов и инструментов
— жизненный цикл проекта
— миграция с привычного pip-подхода
— обновление и настройка самого uv

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

📘 Книга: структуры данных на Python

Обратите внимание на A First Course on Data Structures in Python. Это не перегруженный академический учебник и не набор задач ради задач.

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

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🚀 Как собрать идеальную Python-библиотеку в 2026 году

Вот краткий чек-лист:

🔹 Основа — uv от Astral. В 2026 году uv стал «позвоночником» разработки, объединяя в себе управление зависимостями, сборку и публикацию.

🔹 Структура и метаданные. Используйте стандартную структуру с папкой src/ и обязательно заполняйте pyproject.toml. Для названий пакетов лучше всего подходит lower-skewer-case.

🔹 Качество кода превыше всего:
— Линтинг и форматирование: Используйте ruff — он заменяет сразу несколько старых инструментов и работает молниеносно.
— Типизация: В 2026 году библиотека не может считаться качественной без аннотаций типов. Для проверки используйте mypy или pyright.
Тесты: Золотой стандарт pytest. Важно тестировать библиотеку на всех поддерживаемых версиях Python, что легко делается через uv --python.

🔹 Автоматизация (DX):
— Настройте pre-commit хуки, чтобы ошибки линтинга не попадали в репозиторий.
— Используйте CI/CD (GitHub Actions или альтернативы вроде Codeberg) для проверки кода перед каждым релизом.

🔗 Полная статья

📍 Навигация: ВакансииЗадачиСобесы

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

#буст

Читать полностью…
Subscribe to a channel