🆕🔥Новый материал.
👉 Утилита ripgrep: чем хорош, как пользоваться
📝 ripgrep (утилита rg) - сверх-быстрый консольный "поисковик" по файлам и каталогам. Он рекурсивно ищет по регулярным выражениям, по умолчанию уважает .gitignore, пропускает скрытые и бинарные файлы, меняет поведение в зависимости от того, печатает ли в терминал (цвет, заголовки, номера строк) и рабо
🌐 https://docs-python.ru/other/utilita-ripgrep-chem-horosh-kak-polzovatsya/
👉 Утилита ripgrep: чем хорош, как пользоваться
📝 ripgrep (утилита rg) - сверх-быстрый консольный "поисковик" по файлам и каталогам. Он рекурсивно ищет по регулярным выражениям, по умолчанию уважает .gitignore, пропускает скрытые и бинарные файлы, меняет поведение в зависимости от того, печатает ли в терминал (цвет, заголовки, номера строк) и рабо
🌐 https://docs-python.ru/other/utilita-ripgrep-chem-horosh-kak-polzovatsya/
🔥1
🆕🔥Новый материал.
👉 Tailscale и Headscale: что это и зачем?
📝 Tailscale и Headscale - это современные решения, построенные поверх WireGuard, но с автоматической настройкой, маршрутизацией и пробросом NAT.
🌐 https://docs-python.ru/other/tailscale-i-headscale/
👉 Tailscale и Headscale: что это и зачем?
📝 Tailscale и Headscale - это современные решения, построенные поверх WireGuard, но с автоматической настройкой, маршрутизацией и пробросом NAT.
🌐 https://docs-python.ru/other/tailscale-i-headscale/
🔥2
🆕🔥Новый материал.
👉 Паттерны для продакшн-инцидентов с lsof
📝 Практический набор шаблонов (паттернов) для оперативного расследования инцидентов в проде. Для каждого паттерна - какие команды запускать, что смотреть, и что делать дальше. Все команды - для Debian-подобных систем; везде полезно добавлять sudo (иначе не увидишь чужие процессы).
🌐 https://docs-python.ru/other/lsof-rukovodstvo/patterny-lsof/
👉 Паттерны для продакшн-инцидентов с lsof
📝 Практический набор шаблонов (паттернов) для оперативного расследования инцидентов в проде. Для каждого паттерна - какие команды запускать, что смотреть, и что делать дальше. Все команды - для Debian-подобных систем; везде полезно добавлять sudo (иначе не увидишь чужие процессы).
🌐 https://docs-python.ru/other/lsof-rukovodstvo/patterny-lsof/
🔥2
🆕🔥Новый материал.
👉 Глубокие трюки lsof (на практике)
📝 lsof - это швейцарский нож диагностики Linux. Он заменяет десятки инструментов, показывает реальную картину происходящего в системе и особенно полезен в боевых инцидентах, когда нужно действовать быстро.
🌐 https://docs-python.ru/other/lsof-rukovodstvo/tryuki-lsof-na-praktike/
👉 Глубокие трюки lsof (на практике)
📝 lsof - это швейцарский нож диагностики Linux. Он заменяет десятки инструментов, показывает реальную картину происходящего в системе и особенно полезен в боевых инцидентах, когда нужно действовать быстро.
🌐 https://docs-python.ru/other/lsof-rukovodstvo/tryuki-lsof-na-praktike/
🔥2
🆕🔥Новый материал.
👉 Поднимаем 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/
👉 Поднимаем 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/
👍1
🆕🔥Новый материал.
👉 Поднимем Tailscale, шаг за шагом
📝 Шаг за шагом поднимем Tailscale на всех нужных серверах, чтобы backup-сервер мог тянуть бэкапы по приватным, зашифрованным туннелям - без NAT-проблем и без ручной настройки WireGuard.
🌐 https://docs-python.ru/other/tailscale-i-headscale/podnimem-tailscale/
👉 Поднимем Tailscale, шаг за шагом
📝 Шаг за шагом поднимем Tailscale на всех нужных серверах, чтобы backup-сервер мог тянуть бэкапы по приватным, зашифрованным туннелям - без NAT-проблем и без ручной настройки WireGuard.
🌐 https://docs-python.ru/other/tailscale-i-headscale/podnimem-tailscale/
👍2
Docstring вместо pass
Python позволяет использовать
Эта строка документации становится доступной через
Это распространенная практика. Особенно для исключений и простых классов, где
Преимущества использования 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👍3
Разбираем код:
Зачем одновременно
Это классический паттерн:
- seen (
- page_items (
Если сразу использовать только
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²) на больших данных.👍2
🔁⚡Изменение информации.
👉 Паттерны использования io.StringIO() в Python
📝 io.StringIO используется для работы со строками в памяти как с текстовым файлом. Он полезен когда нужно читать или записывать текстовые данные без создания реального файла, сохраняя при этом все возможности файлового интерфейса для строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-stringio/
👉 Паттерны использования io.StringIO() в Python
📝 io.StringIO используется для работы со строками в памяти как с текстовым файлом. Он полезен когда нужно читать или записывать текстовые данные без создания реального файла, сохраняя при этом все возможности файлового интерфейса для строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-stringio/
👍1
🔁⚡Изменение информации.
👉 Паттерны использования io.BytesIO() в Python
📝 io.BytesIO используется для работы с байтовыми данными в памяти как с файлом. Он полезен когда нужно читать или писать байты без создания реального файла на диске, например для обработки данных в оперативной памяти.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-bytesio/
👉 Паттерны использования io.BytesIO() в Python
📝 io.BytesIO используется для работы с байтовыми данными в памяти как с файлом. Он полезен когда нужно читать или писать байты без создания реального файла на диске, например для обработки данных в оперативной памяти.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-bytesio/
👍1
🆕🔥Новый материал.
👉 Паттерны использования io.TextIOBase() в Python
📝 io.TextIOBase используется для работы с текстовыми потоками, обеспечивая кодирование и декодирование байтов в строки. Он полезен когда нужно единообразно обрабатывать текстовые данные из разных источников с поддержкой кодировок и переводов строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-textiobase/
👉 Паттерны использования io.TextIOBase() в Python
📝 io.TextIOBase используется для работы с текстовыми потоками, обеспечивая кодирование и декодирование байтов в строки. Он полезен когда нужно единообразно обрабатывать текстовые данные из разных источников с поддержкой кодировок и переводов строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-textiobase/
👍1
🔁⚡Изменение информации.
👉 Паттерны использования io.TextIOWrapper() в Python
📝 io.TextIOWrapper используется для оборачивания байтовых потоков в текстовый интерфейс с автоматическим кодированием/декодированием. Он полезен когда нужно преобразовать низкоуровневый байтовый поток в высокоуровневый текстовый с указанием кодировки и обработкой переводов строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-textiowrapper/
👉 Паттерны использования io.TextIOWrapper() в Python
📝 io.TextIOWrapper используется для оборачивания байтовых потоков в текстовый интерфейс с автоматическим кодированием/декодированием. Он полезен когда нужно преобразовать низкоуровневый байтовый поток в высокоуровневый текстовый с указанием кодировки и обработкой переводов строк.
🌐 https://docs-python.ru/standart-library/modul-io-python/primer-ispolzovanija-io-textiowrapper/
👍1
🆕🔥Новый материал.
👉 Паттерны использования io.IOBase() в Python.
📝 io.IOBase полезен когда нужно создать кастомный файлоподобный объект или проверить, что переданный объект поддерживает файловый интерфейс. Он позволяет единообразно работать с разными источниками данных как с файлами.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-iobase/
👉 Паттерны использования io.IOBase() в Python.
📝 io.IOBase полезен когда нужно создать кастомный файлоподобный объект или проверить, что переданный объект поддерживает файловый интерфейс. Он позволяет единообразно работать с разными источниками данных как с файлами.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-iobase/
👍1
🆕🔥Новый материал.
👉 Паттерны использования io.RawIOBase() в Python.
📝 io.RawIOBase полезен для низкоуровневой работы с байтовыми потоками без буферизации. Он используется когда нужно напрямую управлять чтением/записью сырых байтов или создавать кастомные низкоуровневые IO-классы.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-rawiobase/
👉 Паттерны использования io.RawIOBase() в Python.
📝 io.RawIOBase полезен для низкоуровневой работы с байтовыми потоками без буферизации. Он используется когда нужно напрямую управлять чтением/записью сырых байтов или создавать кастомные низкоуровневые IO-классы.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-rawiobase/
👍1
🆕🔥Новый материал.
👉 Паттерны использования io.FileIO() в Python
📝 io.FileIO представляет низкоуровневый небуферизованный доступ к файлам на уровне операционной системы. Он используется когда нужен прямой доступ к файловому дескриптору или максимальный контроль над операциями ввода-вывода без накладных расходов буферизации.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-fileio/
👉 Паттерны использования io.FileIO() в Python
📝 io.FileIO представляет низкоуровневый небуферизованный доступ к файлам на уровне операционной системы. Он используется когда нужен прямой доступ к файловому дескриптору или максимальный контроль над операциями ввода-вывода без накладных расходов буферизации.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-fileio/
👍1
🆕🔥Новый материал.
👉 Паттерны использования io.BufferedIOBase() в Python
📝 io.BufferedIOBase полезен для работы с буферизованными байтовыми потоками, где важна производительность при частых операциях чтения/записи. Он используется когда нужна оптимизация ввода-вывода через буферизацию данных вместо прямых низкоуровневых операций.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-bufferediobase/
👉 Паттерны использования io.BufferedIOBase() в Python
📝 io.BufferedIOBase полезен для работы с буферизованными байтовыми потоками, где важна производительность при частых операциях чтения/записи. Он используется когда нужна оптимизация ввода-вывода через буферизацию данных вместо прямых низкоуровневых операций.
🌐 https://docs-python.ru/standart-library/modul-io-python/patterny-io-bufferediobase/
👍1
🆕🔥Новый материал.
👉 Введение в Pydantic v2 и базовый шаблон
📝 Pydantic v2 - это быстрый валидатор и конвертер данных по аннотациям типов, идеальный для работы с API, JSON, БД и конфигурациями. Отличается четким разделением этапов: валидация/нормализация => модель => сериализация.
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/
👉 Введение в Pydantic v2 и базовый шаблон
📝 Pydantic v2 - это быстрый валидатор и конвертер данных по аннотациям типов, идеальный для работы с API, JSON, БД и конфигурациями. Отличается четким разделением этапов: валидация/нормализация => модель => сериализация.
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/
🔥1
🆕🔥Новый материал.
👉 Модуль Celery в Python
📝 Celery - это фреймворк для выполнения фоновых задач и распределённой обработки в Python
🌐 https://docs-python.ru/packages/modul-celery-v-python/
👉 Модуль Celery в Python
📝 Celery - это фреймворк для выполнения фоновых задач и распределённой обработки в Python
🌐 https://docs-python.ru/packages/modul-celery-v-python/
👍1
🆕🔥Новый материал.
👉 Поля, значения по умолчанию и алиасы в Pydantic v2
📝 Материал посвящен работе с полями моделей Pydantic: настройке обязательности, значений по умолчанию, валидации, алиасов и специальных типов полей для различных сценариев данных.
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/polya-znacheniya-po-umolchaniyu-i-aliasy/
👉 Поля, значения по умолчанию и алиасы в Pydantic v2
📝 Материал посвящен работе с полями моделей Pydantic: настройке обязательности, значений по умолчанию, валидации, алиасов и специальных типов полей для различных сценариев данных.
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/polya-znacheniya-po-umolchaniyu-i-aliasy/
👍1
🆕🔥Новый материал.
👉 Валидаторы и преобразования в Pydantic v2
📝 Материал рассказывает о пайплайне валидации в Pydantic, включая порядок выполнения валидаторов, нормализацию данных и проверку зависимостей между полями. Также рассматриваются практические рецепты: установка значений по умолчанию, нормализация коллекций и создание кросс-полевых правил
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/validatory-i-preobrazovaniya/
👉 Валидаторы и преобразования в Pydantic v2
📝 Материал рассказывает о пайплайне валидации в Pydantic, включая порядок выполнения валидаторов, нормализацию данных и проверку зависимостей между полями. Также рассматриваются практические рецепты: установка значений по умолчанию, нормализация коллекций и создание кросс-полевых правил
🌐 https://docs-python.ru/packages/vvedenie-v-pydantic-v2/validatory-i-preobrazovaniya/
👍1