Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Mostrar más📈 Análisis del canal de Telegram Zen of Python
El canal Zen of Python (@zen_of_python) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 732 suscriptores, ocupando la posición 6 967 en la categoría Tecnologías y Aplicaciones y el puesto 35 153 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 732 suscriptores.
Según los últimos datos del 25 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -83, y en las últimas 24 horas de -12, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 6.16%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.21% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 154 visualizaciones. En el primer día suele acumular 788 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 1.
- Intereses temáticos: El contenido se centra en temas clave como github, rust, pip, api, install.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
--help загружает тяжёлые зависимости.
# Python 3.15+
lazy import json
def parse(text):
return json.loads(text)
Но выполнение модуля тоже переносится. Если импорт регистрировал плагин, а к имени никто не обратился, регистрация не произойдёт. Ошибка загрузки также может возникнуть позже привычного места импорта.
В руководстве по ленивым импортам предлагают сначала измерить их стоимость через -X importtime, затем отложить только нужные зависимости.
Новый синтаксис не разбирается старыми версиями Python. Для совместимого кода есть __lazy_modules__: старые интерпретаторы игнорируют этот список и выполняют обычный импорт.
#python #производительностьwritestr() с именем файла переменная позволяет задать стабильную дату вместо текущей.
Дату лучше брать из неизменяемого события сборки, например коммита. Отдельно нужно сортировать имена, фиксировать содержимое и параметры сжатия. Явно переданный ZipInfo требует своей политики метаданных.
Проверка должна сравнивать байты двух сборок, а не только распакованные файлы. Для строгой воспроизводимости закрепите и версии инструментов: одинаковые исходники не гарантируют одинаковое сжатие в любой среде.
#python #сборкаTypeAdapter(int | str) как int | str, а не неизвестный тип.
Это улучшает статическую проверку, но не заменяет выполнение валидации. Само указание аннотации ещё не проверяет внешние данные.
Для TypeForm нужны достаточно свежие анализаторы: авторы указывают Pyright 1.1.412 или Mypy 2.2 и новее. Перед обновлением проверьте также свои валидаторы, сериализацию и генерацию схем: в выпуск вошли небольшие изменения поведения.
#python #pydanticsrc/:
project/
├── pyproject.toml
├── src/
│ └── mypkg/
│ └── __init__.py
└── tests/
Теперь пакет обычно нужно установить, прежде чем импортировать. Это помогает заметить зависимость от файлов, случайно доступных в корне проекта.
Но установка для разработки и установка собранного wheel — разные проверки. Чтобы найти пропущенный шаблон или файл данных, соберите wheel и запустите тесты с ним в чистом окружении вне репозитория.
#python #тестирование✅находить закономерности в больших массивах; ⬜️предсказывать поведение пользователей; ⬜️строить рекомендательные системы; ⬜️обучать и улучшать ML-модели; ⬜️создавать продукты и помогать бизнесу расти.В Школе аналитиков данных МТС учатся решать такие задачи на практике. В программе — SQL и Python, математика и статистика, анализ данных, машинное обучение и большие данные, а также нейросети и рекомендательные системы. Занятия ведут действующие эксперты Центра BigData MWS. Теория чередуется с практикой, а преподаватели дают обратную связь по работам и помогают отслеживать прогресс. Это будет интересно:
➡️студентам последних курсов и выпускникам технических вузов ➡️алитикам данных, которые хотят погружаться в исследования ➡️ИТ-специалистам, которые хотят перейти в новое для себя направлениеОбучение продлится 10 месяцев и будет полностью бесплатным. Заявки принимаем до 25 октября. Отправить заявку ↗️
python -X warn_default_encoding app.py
Предупреждения покажут выполненные вызовы, где кодировка не указана. Для остальных путей пригодится статическая проверка.
Указывайте encoding="utf-8" для UTF-8 и encoding="cp1251" для известных старых файлов. Если нужна именно кодировка локали пользователя, используйте encoding="locale".
Не добавляйте errors="ignore" ради исчезновения ошибки: так можно незаметно потерять символы. Перед обновлением проверьте реальные входные файлы, включая выгрузки из старых систем.
#python #файлыConnection.backup(). Метод вызывают у источника и передают ему соединение с приёмником:
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("app.db")) as src:
with closing(sqlite3.connect("backup.db")) as dst:
src.backup(dst)
SQLite согласует копирование с работой базы. Получившаяся копия самостоятельна: следующие записи в исходник в неё не попадут.
Здесь closing нужен для закрытия соединений: обычный with connection управляет транзакцией, но не закрывает соединение. После бэкапа проверьте восстановление и чтение данных.
#python #sqlitelazy=True Python-объекты создаются только для запрошенных полей. Сборка Python без GIL позволяет обрабатывать события в 64 потоках внутри одного процесса. У каждого потока свои счётчики, в конце их складывают. Зачем собирать весь объект, если нужна только малая часть?
У Лемира получилось около 0,12 секунды. Стенд: два Xeon Gold 6548N, 64 ядра, free-threaded Python 3.14.6 и fastsimdjson 0.6.0. Все 7,6 ГБ уже распакованы в RAM, чтение с диска и распаковка в замер не входят. Это лучший из семи прогонов, одинаковую статистику сверили всеми методами.postgresql:// по умолчанию выбирает psycopg, а oracle:// — oracledb. Если проект рассчитывает на конкретный DBAPI, укажите его явно и проверьте совместимость.
Есть ещё два изменения: минимальная версия Python — 3.11, а greenlet больше не устанавливается автоматически. Для асинхронных возможностей используйте:
pip install "sqlalchemy[asyncio]"
Перед обновлением прогоните сценарии подключения, транзакций и загрузки связей. Проверьте окружение CI: старая установленная зависимость может скрыть то, что сломается при чистой установке.
#python #sqlalchemywait(). На небольшом выводе всё работает. На большом буфер канала заполняется: ребёнок ждёт чтения, родитель — завершения ребёнка.
В разборе взаимной блокировки показано, почему каналы нужно читать во время работы процесса. Для ограниченного вывода удобен run():
import subprocess
result = subprocess.run(
["python", "--version"],
capture_output=True,
text=True,
timeout=10,
check=True,
)
Он использует communicate(), который обслуживает оба потока. Вывод при этом собирается в памяти, поэтому для больших логов выбирайте файл или потоковое чтение.
У Popen.communicate(timeout=...) другая тонкость: истечение тайм-аута само не убивает процесс. Нужны завершение процесса и повторный communicate() для чтения остатка вывода.
#python #процессыuv venv
uv pip install -e . -r tests/requirements/py3.txt
uv run python tests/runtests.py
Editable-установка позволяет тестам использовать ваш изменённый код. Для запуска можно указать конкретные тестовые модули вместо всего набора.
Одна из возможных проблем — сборка pylibmc, которой нужны компилятор и заголовки libmemcached. Без этой зависимости остальные тесты можно запускать, но проверки, которым она нужна, будут пропущены. Учитывайте это, если правка затрагивает кеширование.
#python #djangopytest-randomly перемешивает порядок тестов и печатает seed. С ним можно повторить проблемный запуск:
pytest --randomly-seed=12345
Плагин также управляет состоянием генераторов случайных чисел, поэтому сбой стоит проверить и на зависимость от случайных данных.
Ищите изменяемые атрибуты класса, глобальные кеши и фикстуры, которые оставляют состояние после себя. Исправление — изолировать данные и добавить очистку. Один успешный запуск в случайном порядке ещё не доказывает независимость тестов.
#python #тестированиеzlib: небольшой участок с заметным применением, в том числе при работе с пакетами.
Предлагается использовать zlib-rs, а существующую реализацию сохранить как fallback. В обсуждаемом плане Rust-бэкенд мог бы стать опциональным в Python 3.16. Это предложение, а не уже принятая возможность релиза.
Перед расширением проекта нужно проверить поддержку платформ, влияние на производительность, сборку и сопровождение зависимостей.
Rust помогает исключить некоторые ошибки работы с памятью, но корректность алгоритмов по-прежнему требует тестирования. Поэтому в плане есть fuzzing и property-based tests.
#python #cpythonmmap позволяет обращаться к содержимому файла по смещениям. Это удобно для бинарных форматов и повторного поиска, но срез mapped[start:end] всё равно создаёт новый объект bytes.
Чтобы работать с данными через заимствованное представление, используйте memoryview. Тогда нужно следить за временем жизни: пока представления существуют, закрытие mapping может вызвать BufferError. Освободите их до выхода из контекстного менеджера.
Отображение не означает, что весь файл сразу загружен в RAM, и не делает его неизменяемым снимком. Другой процесс всё ещё может менять исходный файл.
Для одного последовательного прохода обычное буферизованное чтение часто проще. Выбирайте mmap под характер доступа и измеряйте результат.
#python #памятьis_file() и is_dir() могут создавать множество запросов метаданных. В Python 3.14 появился кеш типов файлов Path.info.
У объектов, полученных через Path.iterdir(), он может уже содержать информацию из сканирования каталога. Несколько проверок типа используют эти данные повторно.
Цена — актуальность. Если другой процесс заменил файл после обхода, path.info может описывать прежнее состояние. Для свежей проверки используйте прямые методы Path.is_file() и Path.is_dir().
Кеш нельзя очистить на месте; новый Path(path) начинает с пустым кешем. Но даже свежая проверка не устраняет гонку между проверкой и открытием файла — ошибки операции всё равно нужно обрабатывать.
#python #файлы— какие вопросы и задачи он даёт кандидатам в бигтехе; — что в каждом ответе засчитал бы, а что нет – и почему.А в конце ответит на твои вопросы. Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы! Участие бесплатное 🔥 🎁 За регистрацию дарим файл с ответами на 50 сложных вопросов с Python-собеседований. Зарегаться на эфир и забрать подарок можно в боте → @shortcut_py_bot Реклама. О рекламодателе.
