en
Feedback
Docs-Python.ru

Docs-Python.ru

Open in Telegram

Обновления сайта Docs-Python.ru

Show more
952
Subscribers
No data24 hours
-37 days
-430 days
Posts Archive
🆕🔥Новый материал. 👉 Паттерны использования 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/

+1
numpy.md2.25 KB

Разбираем код:
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/