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

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

@pyproglib

Все самое полезное для питониста в одном канале.

Учиться у нас: clc.to/6e5Csg

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

По рекламе: @tproger_sales_bot
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Subscribers
37.4K
Photos
3.3K
Videos
105
Links
5.1K

Showing posts older than #7688 · Back to latest

Older Posts 20 shown
Post #7687 3.14K
Python_Algo_Visual.pdf13.7 MB
📘 Книга: Learn Algorithms Through Python

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

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

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

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

#буст
  • 👍 6
  • ❤ 1
Post #7686 3.13K
🧠 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
→ отвечает уже человеческим текстом

Чтобы узнать больше о разработке ИИ-агентов приходите на наш курс

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

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

#буст
  • 👍 4
  • 👏 3
  • ❤ 1
Post #7685 2.76K
🔥 Знакомьтесь с экспертом Proglib.academy: Эмиль Сатаев

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

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

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

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

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

🟣 8+ лет в разработке (Backend и Frontend)
Прошел путь от фулстека до Backend Platform Developer в SMIT.Studio.


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


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


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


🔗 Зарегистрироваться на вебинар
  • 👾 3
  • ❤ 1
Post #7684 2.54K
🚨 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.

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

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

#буст
  • 👍 5
  • ❤ 1
  • 🤩 1
Post #7683 2.47K
📦 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
• если зависимость больше не поддерживает безопасные версии
• если обновление не ломает обратную совместимость

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

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

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

#буст
  • 👍 7
  • ❤ 1
Post #7682 2.45K

Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение

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

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

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

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

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

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

#буст
  • 👍 7
  • 🤩 1
Post #7680 2.71K
🔥 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 пока не рекомендуется.


🖥 Подробнее

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

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

#буст
  • 🔥 12
  • ❤ 1
Post #7678 2.47K
🐍 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

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

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

#буст
  • 👍 7
  • ❤ 6
Post #7677 2.74K
bernd_klein_python_tutorial_a4.pdf19.6 MB
🐍 Python Tutorial: практическое руководство по изучению Python

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

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

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

#буст
  • ❤ 5
Post #7676 2.87K
🗓 14 мая в 19:00 (Мск) встречаемся в онлайне.

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

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

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


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

👉 Зарегистрироваться на вебинар
Post #7674 3.16K
⚠️ Небольшой совет по Python: как настроить поведение списка

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

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

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

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

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

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

#буст
  • 👍 9
  • ❤ 2
Post #7673 2.89K
🐍 Состояние типизации в 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 новые возможности для типизации динамических структур без специальных плагинов.

🔛 Полный пост
  • ❤ 2
  • 👍 1
  • 👏 1
Post #7671 3.08K
🐍 Селф-хостинг для разработчика: дорожная карта цифрового суверенитета в 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 — объединение всех «умных» устройств в одну локальную сеть без зависимости от вендорских облаков.

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

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

#буст
  • ❤ 7
  • 👍 2
  • 🤔 2
  • 🥱 2
Post #7669 3.39K
Шпаргалка.jpeg594.2 KB
Шпаргалка по uv: 40+ команд, которые реально пригодятся


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

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

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

#буст
  • 👍 6
  • 🔥 4
  • ❤ 1
Post #7668 3.07K
🎤 Ваши знания по ИИ-агентам + наша аудитория в 1 млн человек = профит

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

Что с нас?

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

Что с вас?

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

👉 Стать экспертом и заявить о себе
  • ❤ 1
  • 🌚 1
  • 👾 1
Post #7667 3.37K
Data Structures.pdf640.3 KB
📘 Книга: структуры данных на Python

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

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

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

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

#буст
  • ❤ 3
  • 👍 3
  • 🔥 2
Post #7666 3.25K
10 концепций Docker, которые должен освоить каждый разработчик

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

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

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

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

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

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

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

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

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

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

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

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

#буст
  • ❤ 5
  • 👍 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →