Logo
TGCATALOG
Каталог Подборки Блог
Zen of Python - дзен

Zen of Python - дзен

Полный гид по философии и практике Python в одном канале.

Нет оценок
119
10.09.2026
119
10.09.2026
Нет оценок
119
10.09.2026
Безопасный переход через бот
О канале

Полный гид по философии и практике Python в одном канале.

Подписчиков 18,904
Тематика IT
Язык Русский
Ссылка t.me/zen_of_python
Описание

Zen of Python - канал, посвящённый философии и практикам Python. Уроки, скрипты, лучшие практики и материалы для освоения языка в Telegram.

Последние посты

Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
uv 0.12.5 поменял правило выбора интерпретатора: при одинаковом приоритете теперь предпочитается более новая версия и стандартный вариант Python. Если в конфигурации несколько интерпретаторов с равным приоритетом, окружение может собраться уже не тем Python, что вчера. 🔘 подтянуты CPython 3.10.21, 3.11.16 и 3.12.14; 🔘 в preview у --index и --default-index появился выбор настроенного индекса по имени; 🔘 экспорт SBOM в CycloneDX по умолчанию содержит URL и хеши артефактов; 🔘 cache-physical-space откатывается к логическому размеру файла там, где физический размер файловая система не отдаёт; 🔘 в скриптах по PEP 723 относительные пути к индексам разрешаются относительно каталога скрипта, а не текущего каталога. Выбор индекса по имени авторы помечают как preview. Численных бенчмарков в заметках к релизу нет. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
PyPI перестал принимать новые файлы в релизы старше четырнадцати дней Сет Ларсон описал это изменение 22 июля. Правило простое: если версия пакета опубликована больше двух недель назад, добавить в неё новый файл больше нельзя. Цель — закрыть сценарий, при котором давно стабильную версию тихо дополняют после угона токена или доступа к сборочному процессу. Подтверждённых злоупотреблений на момент публикации не было. 🔘 обсуждение началось ещё вокруг PEP 740 в январе 2024 года и вернулось в марте 2026-го после компрометации двух проектов; 🔘 исправление влили 8 июля 2026 года; 🔘 главное возражение бытовое: проекты иногда докладывают колёса для новой версии Python в уже выпущенный релиз; 🔘 масштаб возражения измерили: среди 15 тысяч самых популярных пакетов так поступили только 56 проектов, добавив совместимое с CPython 3.14 колесо позже чем через две недели; 🔘 на профильной встрече в рамках PyCon US 2026 сочли приемлемым требование выпускать под новый Python новую версию пакета; 🔘 автор просит пока не закладываться на это правило как на гарантию: семантика закрытого релиза и соответствующий интерфейс ещё не определены. Окончательная модель должна приехать вместе с новым протоколом загрузки и предварительными релизами, после стандартизации PEP 694. Так что практический вывод для авторов пакетов такой: план поддержки нового CPython теперь придётся строить через выпуск новой версии, а не через дозагрузку колеса в старую. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Numba 0.67.0 научилась работать с NumPy 2.5 и собирает пакеты для Python 3.14 и Windows ARM64. 🔘 у np.sum и np.cumsum появился динамический axis, ось теперь можно вычислять во время выполнения; 🔘 добавлена JIT-поддержка np.insert, пока без аргумента axis; 🔘 np.random.binomial в RandomState переключается с BINV на BTPE, когда n * min(p, 1 - p) > 30, поток случайных чисел при этом сохраняется; 🔘 анализ живости переменных перевели на топологический порядок, а проверка принадлежности стеку в _find_back_edges стала за O(1); 🔘 сборки через pycc теперь могут быть побайтно воспроизводимыми на Linux и macOS. Из ломающего: np.row_stack и двумерное векторное произведение убраны вслед за NumPy 2.5, cross2d остаётся только для старых версий. Пакеты под Windows ARM64 на старте ограничены Python 3.14, часть тестов там пропущена из-за проблемы в LLVM 22. Отдельно починили тихую ошибку компиляции при повторном присваивании нелокальной переменной во вложенной функции: раньше генерировался неверный код, теперь вылетает UnsupportedError. Численного бенчмарка ускорения BTPE авторы не приводят. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Двадцать пять минут, которые снимают половину вопросов новичка: доклад Неда Бэтчелдера «Facts and Myths about Python names and values» с PyCon US 2015. Весь доклад отвечает на один вопрос: что происходит, когда вы пишете x = 23. Ответ — не «в переменную кладётся значение», а «имя привязывается к объекту». Из этого простого сдвига вырастает объяснение почти всех классических непоняток: 🔘 почему Python нельзя описать ни как передачу по значению, ни как передачу по ссылке; 🔘 почему два имени могут указывать на один объект и менять его вместе; 🔘 почему присваивание никогда не копирует объект; 🔘 почему += для списка и для числа ведут себя по-разному; 🔘 почему изменяемый аргумент по умолчанию живёт между вызовами; 🔘 почему аргументы функции, атрибуты объекта и переменная цикла — это всё одна и та же операция связывания имени. Бэтчелдер разбирает это на диаграммах с коробочками и стрелками, без единой строчки про внутренности интерпретатора. Именно поэтому доклад одиннадцатилетней давности не устарел ни на строчку: семантика имён и объектов с тех пор не менялась. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Cython научился подсказывать компилятору C, какая ветка вероятнее 14 августа вышла бета 3.3.0b1. Релиз для тех, кто собирает расширения: в нём несколько вещей, которые раньше приходилось обходить руками. 🔘 появились cython.likely() и cython.unlikely() — подсказки оптимизатору компилятора C о том, какая ветка условия ожидается чаще; 🔘 реализована конструкция except * для групп исключений по PEP 654 на Python 3.11 и новее; 🔘 аннотации типов у глобальных переменных теперь участвуют в выводе типов, а не игнорируются; 🔘 у сеттеров свойств, объявленных на C, появилась возможность явно пробрасывать исключение вместо безусловной проверки PyErr_Occurred() после каждого вызова; 🔘 поддержан синтаксис однородных кортежей вида tuple[atype, ...]; 🔘 набор возможностей общего модуля теперь настраивается при сборке: команда cython generate-shared принимает --only и --exclude, так что в модуль попадает только нужное. Последний пункт стоит читать вместе с предупреждением авторов: возможность экспериментальная, и если при сборке выключить то, что реально используется, импорт упадёт уже во время работы. Отдельно поменялась схема имён при экспорте и импорте слитых функций на C, но старые имена оставлены для совместимости. Есть и просто ускорения: форматирование чисел в f-строках, extend у bytearray байтами, проверки одиночного символа, размер асинхронных генераторов и перевод модулей с большим числом строк. Численных замеров в списке изменений нет, только слова «быстрее» и «меньше», так что судить о выигрыше на своём проекте придётся самому. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Django переходит на один релиз в год. Steering Council принял DEP 20: с января 2028-го выходит один feature-релиз в год, версии называются по году — Django 2028, Django 2029. 🔘 каждый релиз получает три года поддержки: год обычных исправлений и два года security и data-loss fixes; отдельная метка LTS уходит, потому что каждая версия теперь LTS; 🔘 версия поддерживает три последних Python на момент выхода и подхватывает новый Python в первый год; поддержка Django заканчивается вместе с самым старым из них; 🔘 в любой момент поддерживаются три версии, и обновляться можно по одной в год без прыжка через два года изменений; 🔘 политика депрекаций не меняется, в календарных днях сроки только удлиняются. Переход: Django 6.1 вышел в августе, 6.2 LTS выйдет в апреле 2027-го, Django 2028 — в январе 2028-го. Обязательства по 5.2 LTS и 6.2 LTS остаются как объявлены. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Почему str.lower() иногда ломает проверку имён доменов Регистр символа в Python зависит от версии Unicode интерпретатора. Сейчас unicodedata.unidata_version — 17.0.0, а протокол подготовки строк stringprep, который лежит в основе международных доменных имён, зафиксирован на Unicode 3.2. Поэтому str.lower() и str.encode('idna') в разных версиях Python могут считать разные строки одинаковыми. В обычном коде это проходит незамеченным, а в проверке доменов или авторизации получается обход валидации. В контексте безопасности не зовите str.lower() напрямую. Берите пакет idna: он реализует стандарт IDNA 2008 и не использует встроенные таблицы Unicode. Seth Larson разбирает уязвимость и показывает, как это выглядит на практике.
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
Разрешение зависимостей предложили считать задачей для решателя, а не перебором. SMTpip переводит ограничения пакетов и Requires-Python в формулу и отдаёт её weighted Max-SMT, который за один заход выбирает и версии библиотек, и версию интерпретатора. pip вместо этого перебирает кандидатов с откатами. Что получилось на замерах авторов: 🔘 в среднем по всем наборам ускорение в 6,9 раза против pip, в 9,6 против классического решателя Conda, в 3,2 против smartPip и в 4 против PyEGo; 🔘 на наборе HG2.9K те же 1668 случаев: 433,68 секунды против 2165,20 у pip, ускорение в 4,9 раза; 🔘 доля проектов, которые после установки реально запустились: 87,1% против 75,4% у pip, а на 3081 ноутбуке 39,92% против 20%. Оговорки авторы приводят сами. Это препринт первой версии; время меряли только для разрешения зависимостей, без скачивания и установки пакетов; из конкурентов брали классический solver Conda, libmamba оставили за рамками. Успешный запуск здесь означает, что программа стартовала, а не что она работает правильно. @zen_of_python
Zen of Python - дзен
Zen of Python - дзен
🔒Открыть пост
и посмотреть медиа
У Uvicorn появился разбор HTTP на Zig Версия 0.52.0 вышла 29 июля и принесла экспериментальную реализацию HTTP/1.1. Работает она на библиотеке zttp: разбор там устроен без собственного ввода-вывода, ядро написано на Zig, а к Python приделаны привязки. Включается новый разборщик параметром --http zttp, схема запуска при этом не меняется. 🔘 сам разборщик перед публикацией несколько недель гоняли под фаззингом и провели несколько раундов проверки безопасности; 🔘 авторы прямо называют его экспериментальным и не советуют пускать через него боевой трафик; 🔘 сравнительных замеров задержки и пропускной способности в заметках нет вообще, так что выигрыш придётся мерить самому; 🔘 отдельно починена обработка заголовков WebSocket с символами вне ASCII в связке с библиотекой websockets версии 17.0; 🔘 в той же версии websockets кодирование таких заголовков переведено на ISO-8859-1, и это как раз причина расхождения; 🔘 обратную связь авторы просят присылать в трекер, то есть релиз рассчитан на тех, кто готов проверять на своей нагрузке. Замеров ускорения авторы не приводят. Сам приём такой: разбор протокола вынесен в отдельную библиотеку без ввода-вывода, написанную на другом языке, а Python остаётся клеем и сокетным слоем. Проверить новый путь можно на тестовом стенде, ничего не меняя в боевом запуске: старая реализация остаётся на месте и остаётся выбором по умолчанию. @zen_of_python
Zen of Python - дзен
Динамика подписчиков
+0.0% за 30 дней
Текущие
18,904
Месяц назад
18,912
Средний рост
+0 / день
Обновлено
17 часов назад

Отзывы о канале Zen of Python - дзен

Авторизуйтесь, чтобы оставить отзыв

Только зарегистрированные пользователи могут делиться своим мнением.

Пока нет отзывов

Станьте первым, кто поделится своим впечатлением об этом ресурсе!

Похожие ресурсы

Официальный канал контрреволюционного журнала Петра Хайка. Анализ политики, общества и альтернативные взгляды.

Канал

Официальный дилер автомобилей: новые и подержанные в Узбекистане.

Бот

Пошаговые схемы заработка от 100000₽ в месяц с использованием смартфона.

Канал
Переход на светлую тему
Главная Каталог Подборки Блог Вход