Zen of Python
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Ko'proq ko'rsatish📈 Telegram kanali Zen of Python analitikasi
Zen of Python (@zen_of_python) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 18 731 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 6 999-o'rinni va Rossiya mintaqasida 35 209-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 18 731 obunachiga ega bo‘ldi.
26 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -87 ga, so‘nggi 24 soatda esa -8 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.18% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.24% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 158 marta ko‘riladi; birinchi sutkada odatda 795 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 1 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent github, rust, pip, api, install kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Полный Дзен Пайтона в одном канале
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
Регистрация в перечне РКН: https://tprg.ru/xZOL”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
--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 Реклама. О рекламодателе.
