ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

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

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

الذهاب إلى القناة على Telegram

Все самое полезное для питониста в одном канале. Учиться у нас: clc.to/6e5Csg Для обратной связи: @proglibrary_feeedback_bot По рекламе: @tproger_sales_bot РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Библиотека питониста | Python, Django, Flask

تُعد قناة Библиотека питониста | Python, Django, Flask (@pyproglib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 37 072 مشتركاً، محتلاً المرتبة 3 627 في فئة التكنولوجيات والتطبيقات والمرتبة 17 132 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 37 072 مشتركاً.

بحسب آخر البيانات بتاريخ 27 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -262، وفي آخر 24 ساعة بمقدار -11، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 5.45‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 2.82‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 2 021 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 047 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 2.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل питониста, навигация, буст, строка, api.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Все самое полезное для питониста в одном канале. Учиться у нас: clc.to/6e5Csg Для обратной связи: @proglibrary_feeedback_bot По рекламе: @tproger_sales_bot РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36”

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 28 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

37 072
المشتركون
-1124 ساعات
-617 أيام
-26230 أيام
جذب المشتركين
أكتوبر '26
أكتوبر '26
+60
في 5 قنوات
سبتمبر '26
+73
في 0 قنوات
Get PRO
أغسطس '26
+54
في 2 قنوات
Get PRO
يوليو '26
+92
في 2 قنوات
Get PRO
يونيو '26
+98
في 2 قنوات
Get PRO
مايو '26
+198
في 0 قنوات
Get PRO
أبريل '26
+100
في 1 قنوات
Get PRO
مارس '26
+170
في 6 قنوات
Get PRO
فبراير '26
+118
في 0 قنوات
Get PRO
يناير '26
+171
في 2 قنوات
Get PRO
ديسمبر '25
+272
في 2 قنوات
Get PRO
نوفمبر '25
+214
في 3 قنوات
Get PRO
أكتوبر '25
+245
في 1 قنوات
Get PRO
سبتمبر '25
+172
في 0 قنوات
Get PRO
أغسطس '25
+226
في 2 قنوات
Get PRO
يوليو '25
+227
في 1 قنوات
Get PRO
يونيو '25
+142
في 4 قنوات
Get PRO
مايو '25
+188
في 0 قنوات
Get PRO
أبريل '25
+274
في 16 قنوات
Get PRO
مارس '25
+345
في 53 قنوات
Get PRO
فبراير '25
+334
في 34 قنوات
Get PRO
يناير '25
+400
في 39 قنوات
Get PRO
ديسمبر '24
+435
في 43 قنوات
Get PRO
نوفمبر '24
+465
في 45 قنوات
Get PRO
أكتوبر '24
+469
في 36 قنوات
Get PRO
سبتمبر '24
+552
في 37 قنوات
Get PRO
أغسطس '24
+456
في 37 قنوات
Get PRO
يوليو '24
+510
في 43 قنوات
Get PRO
يونيو '24
+412
في 36 قنوات
Get PRO
مايو '24
+531
في 37 قنوات
Get PRO
أبريل '24
+666
في 37 قنوات
Get PRO
مارس '24
+774
في 34 قنوات
Get PRO
فبراير '24
+754
في 33 قنوات
Get PRO
يناير '24
+722
في 25 قنوات
Get PRO
ديسمبر '23
+1 518
في 25 قنوات
Get PRO
نوفمبر '23
+639
في 8 قنوات
Get PRO
أكتوبر '23
+833
في 23 قنوات
Get PRO
سبتمبر '23
+1 249
في 0 قنوات
Get PRO
أغسطس '23
+815
في 0 قنوات
Get PRO
يوليو '23
+782
في 0 قنوات
Get PRO
يونيو '23
+457
في 0 قنوات
Get PRO
مايو '23
+809
في 0 قنوات
Get PRO
أبريل '23
+460
في 0 قنوات
Get PRO
مارس '23
+1 064
في 0 قنوات
Get PRO
فبراير '23
+599
في 0 قنوات
Get PRO
يناير '23
+673
في 0 قنوات
Get PRO
ديسمبر '22
+724
في 0 قنوات
Get PRO
نوفمبر '22
+1 054
في 0 قنوات
Get PRO
أكتوبر '22
+543
في 0 قنوات
Get PRO
سبتمبر '22
+593
في 0 قنوات
Get PRO
أغسطس '22
+699
في 0 قنوات
Get PRO
يوليو '22
+678
في 0 قنوات
Get PRO
يونيو '22
+891
في 0 قنوات
Get PRO
مايو '22
+429
في 0 قنوات
Get PRO
أبريل '22
+372
في 0 قنوات
Get PRO
مارس '22
+566
في 0 قنوات
Get PRO
فبراير '22
+250
في 0 قنوات
Get PRO
يناير '22
+399
في 0 قنوات
Get PRO
ديسمبر '21
+382
في 0 قنوات
Get PRO
نوفمبر '21
+347
في 0 قنوات
Get PRO
أكتوبر '21
+545
في 0 قنوات
Get PRO
سبتمبر '21
+555
في 0 قنوات
Get PRO
أغسطس '21
+755
في 0 قنوات
Get PRO
يوليو '21
+629
في 0 قنوات
Get PRO
يونيو '21
+502
في 0 قنوات
Get PRO
مايو '21
+706
في 0 قنوات
Get PRO
أبريل '21
+730
في 0 قنوات
Get PRO
مارس '21
+695
في 0 قنوات
Get PRO
فبراير '21
+760
في 0 قنوات
Get PRO
يناير '21
+790
في 0 قنوات
Get PRO
ديسمبر '20
+26 304
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
28 أكتوبر0
27 أكتوبر+1
26 أكتوبر+3
25 أكتوبر+4
24 أكتوبر0
23 أكتوبر+2
22 أكتوبر+3
21 أكتوبر0
20 أكتوبر+1
19 أكتوبر+3
18 أكتوبر+3
17 أكتوبر+4
16 أكتوبر+3
15 أكتوبر0
14 أكتوبر+1
13 أكتوبر+3
12 أكتوبر+3
11 أكتوبر+4
10 أكتوبر+2
09 أكتوبر+6
08 أكتوبر+4
07 أكتوبر+1
06 أكتوبر+1
05 أكتوبر0
04 أكتوبر+1
03 أكتوبر0
02 أكتوبر+2
01 أكتوبر+5
منشورات القناة
⚡ Только до 31 октября: покупайте один курс Proglib Academy и получайте второй в подарок! Что можно освоить? ⏬ ИИ для разрабо
⚡ Только до 31 октября: покупайте один курс Proglib Academy и получайте второй в подарок! Что можно освоить?
⏬ ИИ для разработчиков — применение ИИ на разных этапах разработки: от работы с кодом до тестирования, ревью и организации рабочего процесса. ⏬ Разработка ИИ-агентов — создание собственных агентов с памятью, интеграциями и доступом к внешним инструментам.
Научитесь не просто работать с нейросетями, а создавать решения, которые помогают автоматизировать реальные задачи 📍 Можно выбрать эту пару или сочетать любые другие курсы из каталога — под свои интересы и цели. 🎁 Один курс оплачиваете, второй получаете бесплатно. Акция длится до 31 октября. ✨ Прокачать скиллы по акции

2
👀 У Warp утекли журналы работы ИИ-агентов Атаковали стороннего поставщика инфраструктуры. По предварительной оценке главы Wa
👀 У Warp утекли журналы работы ИИ-агентов Атаковали стороннего поставщика инфраструктуры. По предварительной оценке главы Warp, инцидент мог затронуть около 1% пользователей. Если используете Warp для Python-проектов, в статье разобрали настройки сбора данных и маскировки секретов. Какие именно данные попали в утечку, компания пока уточняет. Что известно об атаке и как устроена защита данных в Warp 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
945
3
✅ Python выпустил обновления с исправленным набором сертификатов для pip Вышли Python 3.15.1, 3.14.9 и 3.13.17 — срочные выпуски после инцидента с сертификатами eMudhra/emSign. В комплект включили pip 26.2.2 с обновлённым certifi 2026.10.19. Этот пакет содержит корневые сертификаты, по которым pip проверяет HTTPS-соединения. Обновление важно всем, кто устанавливает зависимости через pip: от локальных проектов до сборок в CI. Существующие виртуальные окружения нужно обновить отдельно. Проверьте версию Python в образах и на рабочих машинах. Затем пройдитесь по активным окружениям: команда Python рекомендует обновить pip и uv. В объявлении есть команда для безопасного обновления pip с прямой ссылкой на wheel и проверкой SHA-256. ➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии 🐸 Библиотека программиста
1 289
4
🐍 Python 3.10 завершил поддержку после последнего выпуска 3.10.22 Приложение продолжает запускаться — но официальных исправлений безопасности для этой ветки больше не будет. В анонсе от 1 октября Python 3.10.22 назван её последним выпуском. Это отличается от режима security-only. Ветка в таком режиме ещё получает необходимые исправления безопасности, хотя новые возможности и обычные исправления ошибок в неё уже не добавляют. По тому же анонсу: — Python 3.11 получает исправления безопасности до октября 2027 года. — Python 3.12 — до октября 2028 года. — Выпуск 3.13.16 завершает этап полного сопровождения ветки 3.13; дальше остаются исправления безопасности. Переезд не обязательно означает немедленный переход на 3.15 Выберите поддерживаемую ветку, совместимую с фреймворком и зависимостями. Проверьте тесты, нативные расширения, базовый образ контейнера и интерпретатор в CI. Отдельная деталь: выпуски 3.10.22, 3.11.17 и 3.12.15 опубликованы только в исходниках, без официальных установщиков для Windows и macOS. Отсутствие нового установщика не следует путать с отсутствием исправленного исходного кода. 🔗 Статусы веток и октябрьские исправления Python 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 533
5
🧠 Free-threaded Python не снимает с разработчика ответственность за общие данные Убрать GIL — значит разрешить потокам выполнять Python-код параллельно. Но это не делает последовательность действий над общим состоянием безопасной. Проверка остатка на счёте и списание денег должны оставаться согласованной операцией. Защита внутренних структур интерпретатора не знает, какое бизнес-правило вы пытаетесь сохранить. На Python Language Summit обсудили более высокоуровневую модель: задачи заранее объявляют данные, к которым им нужен доступ, а планировщик организует выполнение. В исследуемой модели BOC для этого используются Cown — объекты, связывающие данные с правилами совместного доступа, — и задачи, объявляющие свои зависимости. Это пока исследование, а не новая гарантия Python Прототип bocpy уже позволяет экспериментировать с подходом. Но описанная версия реализует изоляцию через субинтерпретаторы; полноценная модель владения требует изменений среды выполнения. Поддержка free-threading для этого прототипа ещё планируется. Практический вывод для сегодняшнего кода: определяйте границы общей операции и явно защищайте её. Само отсутствие GIL проблему гонок не решает. 🔗 Какие примитивы безопасной конкурентности обсуждают разработчики 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 511
6
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок. Например, можно совместить два направления по работе с ИИ: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. 📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
1 524
7
🔍 OpenTelemetry строит карту связей между сервисами прямо в PyCharm На схеме архитектуры один сервис обращается к другому. В работающем приложении между ними уже появились очередь и ещё два обработчика, а диаграмму никто не обновил. Плагин OpenTelemetry для IDE JetBrains строит Service Map по трассировкам. Он использует spans — записи об отдельных участках работы запроса — и восстанавливает связи, которые действительно наблюдались при выполнении. При запуске приложения плагин поднимает локальный backend для телеметрии и передаёт стандартные переменные окружения OTel. Приложение отправляет данные, backend обрабатывает их, а вкладка Service Map показывает получившуюся структуру. Плагин не добавляет инструментирование за вас Приложение и его библиотеки уже должны уметь создавать и отправлять подходящие spans. Иначе карте просто не из чего строиться. Есть и другая граница: наблюдаемая карта не равна полному перечню зависимостей. Если редкая ветка ещё не выполнялась или часть вызовов не инструментирована, соответствующих связей на ней может не быть. Для разбора конкретного сценария это полезное дополнение к исходному коду и документации. 🔗 Как плагин восстанавливает карту по трассировкам #буст 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 467
8
🧩 PEP 827 предлагает выводить типы CRUD-моделей из общей модели У одной сущности появляются отдельные модели: для создания, публичного ответа и частичного обновления. Поля похожи, но правила различаются. Добавили свойство — теперь нужно проверить несколько определений. На Python Language Summit обсудили PEP 827 о преобразовании типов. Идея — дать системе типов средства, которыми библиотека сможет описать такие преобразования. В докладе это иллюстрируется примерно такой схемой: # Идея из предложения, не готовый API: type HeroPublic = Public[Hero] type HeroCreate = Create[Hero] type HeroUpdate = Update[Hero] Public, Create и Update здесь обозначают предполагаемые преобразования, а не встроенные классы Python. Сложность не заканчивается на статическом анализе Pydantic и FastAPI используют аннотации во время выполнения. Поэтому важно не только научить анализатор выводить новый тип, но и определить, как библиотека получит исходное описание аннотации. В предложении обсуждаются условные типы, перебор членов типа и другие примитивы. Есть прототип на базе mypy. Это направление разработки и обсуждение устройства типизации. В выпущенном Python 3.15 такие конструкции нельзя считать доступной стандартной возможностью. 🔗 Что обсуждали на Language Summit 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 560
9
🛡 Django исправил обход ограничений queryset в formset с редактируемым первичным ключом Ограничили queryset формсета объектами текущего пользователя. Значит ли это, что поддельный POST точно не затронет чужую запись? В некоторых конфигурациях Django ответ был отрицательным. CVE-2026-87975 затрагивала model formsets, у которых первичный ключ можно было задать через форму. Поддельные данные позволяли удалить экземпляр вне ограниченного queryset или создать запись через формсет, предназначенный только для редактирования. Когда стоит проверить код В объявлении перечислены UUID и естественные первичные ключи, включённые в поля формы, а также определённые варианты OneToOneField и родительских связей в inline formsets. Модели со стандартным BigAutoField этим конкретным дефектом не затронуты. Поэтому переносить описание на все Django-формы нельзя. Исправление вошло в Django 6.1.2, 6.0.9 и 5.2.18. При обновлении выбирайте актуальный исправленный выпуск своей поддерживаемой ветки. И добавьте проверку именно поддельного POST: интерфейс может не показывать лишний объект, но сервер обязан отвергнуть попытку передать его идентификатор вручную. 🔗 Условия уязвимости и исправленные ветки Django 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 774
10
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один. Например, можно совместить: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
1 743
11
📦 uv check подготавливает окружение и запускает проверку типов через ty Проверка типов должна видеть те же зависимости, с которыми работает проект. Если окружения расходятся, можно получить ошибки импорта, которых нет при запуске, или пропустить настоящую проблему. В экспериментальной интеграции uv и ty эту подготовку берёт на себя uv check: uv check Команда подготавливает окружение проекта, устанавливает необходимые зависимости и запускает ty. Для workspace можно проверить отдельный пакет или все сразу: uv check --package backend uv check --all-packages Скрипты с зависимостями в метаданных PEP 723 проверяются в собственных окружениях: uv check --script report.py Что пока не входит в команду Это проверка типов через ty. Объединение с Ruff ещё запланировано: считать uv check готовой заменой линтеру и форматтеру рано. Нужны uv 0.12.3+ и ty 0.0.76+. Интеграция экспериментальная. Подготовка окружения может устанавливать сторонние пакеты, поэтому запуск такой проверки не стоит воспринимать как простое чтение Python-файлов. 🔗 Как uv и ty используют общее окружение проекта #буст 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста
1 697
12
📦 Tach: закрепите границы модулей в проверке Договорились, что слой API не обращается к базе напрямую. Через месяц в нём поя
📦 Tach: закрепите границы модулей в проверке Договорились, что слой API не обращается к базе напрямую. Через месяц в нём появляется удобный импорт — и архитектурное правило снова существует только в памяти команды. Tach проверяет зависимости между модулями Python по заданным границам. Можно контролировать разрешённые импорты, использование публичных интерфейсов и циклы зависимостей. Начать с нескольких модулей pip install tach tach init tach check Во время tach init выбираются границы модулей. Настройки сохраняются в tach.toml. Если импорт нарушает объявленную зависимость, tach check сообщает об ошибке и завершается с ненулевым кодом — проверку удобно добавить в CI. Для графа зависимостей есть tach show: он создаёт локальный DOT-файл. У варианта tach show --web другая механика — содержимое конфигурации передаётся для удалённой генерации графа. 🔗 Репозиторий и примеры 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
1 989
13
💾 Memray: где Python-приложение набирает память Процесс занимает всё больше памяти, но список Python-объектов не объясняет, откуда взялся пик. Особенно если внутри работают NumPy или другие библиотеки с нативными расширениями. Memray отслеживает выделение памяти в Python-коде, расширениях и самом интерпретаторе. Для первого разбора можно записать профиль и построить HTML-отчёт: memray run -o profile.bin app.py memray flamegraph -o memory.html profile.bin Когда нужно увидеть C/C++-стек Добавьте --native в команду запуска. В отчёте появятся нативные кадры стека — полезно для поиска аллокаций внутри расширений. Такой режим добавляет нагрузку, а отчёт с нативными символами нужно генерировать на той же машине, где записан профиль. По умолчанию flamegraph показывает распределение аллокаций на пике памяти. Режим --leaks показывает аллокации, не освобождённые к концу записи. Это ещё не доказательство утечки Python-объектов: память может оставаться в пулах аллокатора. Инструмент работает на Linux и macOS. Под Windows его установить нельзя. 🔗 Документация Memray 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
2 150
14
🔍 Посмотрите, что Polars собирается выполнить В коде фильтр стоит после преобразования столбца. Это ещё не значит, что Polars выполнит операции именно в таком порядке: у lazy-запроса есть исходный и оптимизированный планы. import polars as pl query = ( pl.scan_csv("users.csv") .with_columns(pl.col("name").str.to_uppercase()) .filter(pl.col("score") > 0) ) print(query.explain(optimized=False)) print(query.explain()) В таком запросе фильтр по score не зависит от преобразования name. Оптимизатор может перенести фильтрацию к чтению CSV: ненужные строки не придётся сначала обрабатывать преобразованием. Это называется predicate pushdown. В официальном примере видно, как отдельный FILTER превращается в SELECTION внутри CSV SCAN. Сам explain() показывает план, а результат запроса получают через query.collect(). Не заменяйте замеры обещанием «lazy всегда быстрее»: сначала посмотрите, что изменилось в плане именно вашей задачи. 🔗 Разбор двух планов запроса 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
2 210
15
📚Напоминаем про наш полный курс «Самоучитель по 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
2 067
16
📋 marimo: ноутбук, который знает зависимости между ячейками Поменяли исходные данные, а график остался старым — потому что забыли повторно выполнить нужную ячейку. В marimo выполнение строится по зависимостям между переменными, а не по положению ячеек на экране. В автоматическом режиме после выполнения ячейки запускаются те, которые используют определённые в ней переменные. Для дорогих вычислений можно выбрать ленивый режим: зависимые ячейки будут отмечаться как устаревшие. Попробовать локально pip install marimo marimo edit analysis.py Если файла ещё нет, редактор создаст пустой ноутбук. Он хранится как Python-файл; его можно запускать как скрипт или открыть в режиме приложения через marimo run analysis.py. Но магии с мутациями нет items.append(42) в другой ячейке не запускает реактивный пересчёт. Документация советует создавать новую переменную либо менять объект в той же ячейке, где он определён. 🔗 Как работает реактивность 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
2 013
17
🧪 Как проверить HTTPX-клиент без настоящего запроса к API Тест не должен зависеть от того, работает ли внешний сервис прямо сейчас. Для HTTPX есть RESPX: он перехватывает запросы и возвращает ответы, которые вы задали в тесте. import httpx import respx @respx.mock def test_status(): route = respx.get("https://example.org/status").mock( return_value=httpx.Response(200, json={"ok": True}) ) response = httpx.get("https://example.org/status") assert response.json() == {"ok": True} assert route.call_count == 1 Последняя проверка подтверждает, что маршрут действительно вызвали, а не просто получили подходящий результат другим путём. По умолчанию RESPX требует, чтобы перехваченные запросы совпадали с настроенными маршрутами, а все добавленные маршруты были вызваны. Эти проверки можно отключить, но в небольшом тесте они помогают заметить ошибку в URL или лишний запрос. Работаете с pytest? У библиотеки есть фикстура respx_mock. 🔗 Гайд и настройки RESPX 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
2 055
18
🧑‍💻 Какие навыки помогают вам в разработке в 2026 году? Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно? Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему. Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании. 👉 Пройти опрос
1 505
19
☔️ Планы на выходные снова испортила погода? У нас есть план получше. Выходные — хороший повод заняться тем, на что вечно не хватает времени. Например, освоить новый навык или углубиться в знакомую тему. 📍 В Proglib Academy покупаешь один курс, а второй получаешь в подарок. Платишь только за один! Вот несколько сочетаний: 💥 ⁠Разработка ИИ-агентов + ⁠Python 💥 ⁠Machine Learning + ⁠Математика для Data Science Можно выбрать и другие курсы — под свои интересы и цели. ⏳ Акция действует до 18 октября. ➡️ ⁠Выбрать курсы и оставить заявку
2 192
20
🧠 SQL по CSV: без отдельного сервера базы данных Для одноразового отчёта не всегда нужно загружать выгрузку в отдельную СУБД. DuckDB умеет выполнять SQL прямо по CSV, Parquet и JSON из Python. Допустим, в sales.csv есть столбцы city и amount: import duckdb rows = duckdb.sql(""" SELECT city, SUM(amount) AS total FROM 'sales.csv' GROUP BY city ORDER BY total DESC """).fetchall() print(rows) Запрос выполняется внутри процесса Python. По умолчанию используется база в памяти; создавать постоянную таблицу для этой задачи не требуется. fetchall() забирает результат в виде Python-объектов. Нюанс для приложения duckdb.sql() использует общую глобальную connection, которая не является потокобезопасной. Если запросы идут из разных потоков, каждому нужна собственная connection через duckdb.connect(). 🔗 Примеры Python API 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека питониста #буст
2 268