Docs-Python.ru
الذهاب إلى القناة على Telegram
952
المشتركون
لا توجد بيانات24 ساعات
-37 أيام
-430 أيام
أرشيف المشاركات
🆕🔥Новый материал.
👉 Паттерны использования io.TextIOBase() в Python
📝 io.TextIOBase используется для работы с текстовыми потоками, обеспечивая кодирование и декодирование байтов в строки. Он полезен когда нужно единообразно обрабатывать текстовые данные из разных источников с поддержкой кодировок и переводов строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-textiobase/
🔁⚡Изменение информации.
👉 Паттерны использования io.BytesIO() в Python
📝 io.BytesIO используется для работы с байтовыми данными в памяти как с файлом. Он полезен когда нужно читать или писать байты без создания реального файла на диске, например для обработки данных в оперативной памяти.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-bytesio/
🔁⚡Изменение информации.
👉 Паттерны использования io.StringIO() в Python
📝 io.StringIO используется для работы со строками в памяти как с текстовым файлом. Он полезен когда нужно читать или записывать текстовые данные без создания реального файла, сохраняя при этом все возможности файлового интерфейса для строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-stringio/
Разбираем код:
seen: set[str] = set()
line_items: list[str] = []
for it in items:
if it in seen:
seen.add(it)
line_items.append(it)
Зачем одновременно set и list?
Это классический паттерн:
- seen (set) = быстрый дедуп (O(1) проверка);
- page_items (list) - упорядоченный список, с которым дальше удобно работать
Если бы ты сразу использовал только set, то потерялся бы порядок (например, в отчётах всё поедет). Если только list - дедуп по in стал бы O(N²) на больших данных.Docstring вместо pass
Python позволяет использовать
docstring (строку документации) вместо pass:
class NonXmlSitemapError(Exception):
"""Контент не похож на XML sitemap (HTML/мусор/не тот Content-Type)."""
# Эквивалентно:
class NonXmlSitemapError(Exception):
pass
Эта строка документации становится доступной через .__doc__:
print(NonXmlSitemapError.__doc__)
# Вывод: Контент не похож на XML sitemap (HTML/мусор/не тот Content-Type).
Это распространенная практика. Особенно для исключений и простых классов, где docstring объясняет их назначение.
Преимущества использования docstring вместо pass:
- Самодокументирующий код - сразу понятно назначение исключения
- Доступно через help() - help(NonXmlSitemapError) покажет описание
- Чище синтаксис - не нужно лишнего pass🆕🔥Новый материал.
👉 Поднимем Tailscale, шаг за шагом
📝 Шаг за шагом поднимем Tailscale на всех нужных серверах, чтобы backup-сервер мог тянуть бэкапы по приватным, зашифрованным туннелям - без NAT-проблем и без ручной настройки WireGuard.
🌐 https://docs-python.ru/other/tailscale-i-headscale/podnimem-tailscale/
🆕🔥Новый материал.
👉 Поднимаем Headscale через Docker Compose
📝 Поднимем Headscale через Docker Compose. Cразу сделаем его узлом сети для бэкапов. Без покупки домена: используем бесплатный DNS-"трюк" с nip.io, чтобы получить валидный Let’s Encrypt сертификат.
🌐 https://docs-python.ru/other/tailscale-i-headscale/headscale-cherez-docker-compose/
🆕🔥Новый материал.
👉 Глубокие трюки lsof (на практике)
📝 lsof - это швейцарский нож диагностики Linux. Он заменяет десятки инструментов, показывает реальную картину происходящего в системе и особенно полезен в боевых инцидентах, когда нужно действовать быстро.
🌐 https://docs-python.ru/other/lsof-rukovodstvo/tryuki-lsof-na-praktike/
🆕🔥Новый материал.
👉 Паттерны для продакшн-инцидентов с lsof
📝 Практический набор шаблонов (паттернов) для оперативного расследования инцидентов в проде. Для каждого паттерна - какие команды запускать, что смотреть, и что делать дальше. Все команды - для Debian-подобных систем; везде полезно добавлять sudo (иначе не увидишь чужие процессы).
🌐 https://docs-python.ru/other/lsof-rukovodstvo/patterny-lsof/
🆕🔥Новый материал.
👉 Tailscale и Headscale: что это и зачем?
📝 Tailscale и Headscale - это современные решения, построенные поверх WireGuard, но с автоматической настройкой, маршрутизацией и пробросом NAT.
🌐 https://docs-python.ru/other/tailscale-i-headscale/
🆕🔥Новый материал.
👉 Утилита ripgrep: чем хорош, как пользоваться
📝 ripgrep (утилита rg) - сверх-быстрый консольный "поисковик" по файлам и каталогам. Он рекурсивно ищет по регулярным выражениям, по умолчанию уважает .gitignore, пропускает скрытые и бинарные файлы, меняет поведение в зависимости от того, печатает ли в терминал (цвет, заголовки, номера строк) и рабо
🌐 https://docs-python.ru/other/utilita-ripgrep-chem-horosh-kak-polzovatsya/
🆕🔥Новый материал.
👉 lsof - руководство системного администратора
📝 lsof (list open files) - утилита, которая показывает все открытые файлы и сокеты в системе. Это один из самых мощных и недооценённых инструментов администрирования в Linux.
🌐 https://docs-python.ru/other/lsof-rukovodstvo/
🆕🔥Новый материал.
👉 Ограничение параллелизма/конкурентности Pebble
📝 Коротко: ограничение параллелизма появляется только там, где есть пул (ProcessPool/ThreadPool). Если использовать декораторы без пула, каждый вызов запускает отдельный процесс/поток, и да - 1000 вызовов породят ~1000 процессов/потоков (систему можно уронить).
🌐 https://docs-python.ru/packages/parallelnoe-vypolnenie-pebble/ogranichenie-konkurentnosti-pebble/
🆕🔥Новый материал.
👉 Миграция между concurrent.futures и Pebble
📝 Шпаргалка - "как быстро перейти между concurrent.futures и Pebble" (в обе стороны). Коротко, по делу и с готовыми замещениями.
🌐 https://docs-python.ru/packages/parallelnoe-vypolnenie-pebble/migratsiya-mezhdu-concurrent-futures-i-pebble/
🆕🔥Новый материал.
👉 Синхронизация доступа к общему ресурсу в Pebble
📝 Что именно делает @synchronized, какой лок выбрать (threads vs processes), как организовать обмен локом с воркерами пула, что делать на Windows/Unix, альтернативы (очереди/единственный писатель), типовые грабли и готовые рецепты.
🌐 https://docs-python.ru/packages/parallelnoe-vypolnenie-pebble/sinhronizatsiya-dostupa-k-obschemu-resursu-v-pebbl/
🆕🔥Новый материал.
👉 Параллельное выполнение Pebble в Python
📝 Практичное руководство по библиотеке Pebble: что она дает, когда и как её использовать, обзор всех ключевых функций/классов с сигнатурами и параметрами, а также проверенные паттерны применения с краткими примерами.
🌐 https://docs-python.ru/packages/parallelnoe-vypolnenie-pebble/
🆕🔥Новый материал.
👉 Наследование и композиция в модуле attrs
📝 Как attrs собирает поля при наследовании и как влияет порядок MRO. Взаимодействие полей базового/дочернего классов. Наследование настроек. Множественное наследование и миксины
🌐 https://docs-python.ru/packages/modul-attrs-v-python/nasledovanie-i-kompozitsiya/
🆕🔥Новый материал.
👉 Сериализация и introspection в модуле attrs
📝 Рекурсивная сериализация, управление коллекциями, фильтрация и преобразование значений. metadata на полях. Как превратить Enum/Decimal/datetime в JSON-дружелюбный вид. Паттерны...
🌐 https://docs-python.ru/packages/modul-attrs-v-python/serializatsiya-i-introspection/
🆕🔥Новый материал.
👉 Шпаргалка по attrs (Python)
📝 Быстрый шаблон для большинства моделей. Сериализация и экспорт. Жизненный цикл.Иммутабельность, равенство, хэш. Контроль присвоений. Конвертеры и валидаторы. Дефолты: что и когда. Частые опции поля (field). Частые опции на классе. Мини‑паттерны. Анти‑паттерны.
🌐 https://docs-python.ru/packages/modul-attrs-v-python/shpargalka-po-attrs/
