🆕🔥Новый материал.
👉 Шаблоны эффективного использования атрибута __name__ в Python.
📝 Материал рассматривает магический атрибут __name__ как атрибут модуля и как атрибут типа объекта. Примеры шаблонов эффективного использования атрибута __name__ в Python
🌐 https://docs-python.ru/tutorial/klassy-jazyke-python/atribut-name/
👉 Шаблоны эффективного использования атрибута __name__ в Python.
📝 Материал рассматривает магический атрибут __name__ как атрибут модуля и как атрибут типа объекта. Примеры шаблонов эффективного использования атрибута __name__ в Python
🌐 https://docs-python.ru/tutorial/klassy-jazyke-python/atribut-name/
👍2🔥1
🔁⚡Изменение информации.
👉 Функция wait() модуля asyncio в Python.
📝 Функция wait() модуля asyncio одновременно запускает awaitable-объекты (преимущественно задачи Task) из переданного множества aws и производит блокировку выполнения программы до выполнения условия, указанного в аргументе return_when.
🌐 https://docs-python.ru/standart-library/modul-asyncio-python/funktsija-wait-modulja-asyncio/
👉 Функция wait() модуля asyncio в Python.
📝 Функция wait() модуля asyncio одновременно запускает awaitable-объекты (преимущественно задачи Task) из переданного множества aws и производит блокировку выполнения программы до выполнения условия, указанного в аргументе return_when.
🌐 https://docs-python.ru/standart-library/modul-asyncio-python/funktsija-wait-modulja-asyncio/
👍1🔥1
🔁⚡Изменение информации.
👉 Функция wait_for() модуля asyncio в Python.
📝 Функция wait_for() модуля asyncio ждет, пока объект ожидания aw завершится с таймаутом timeout. Функция будет ждать до тех пор, пока объект Future не будет фактически отменен, поэтому общее время ожидания может превысить таймаут.
🌐 https://docs-python.ru/standart-library/modul-asyncio-python/funktsija-wait-for-modulja-asyncio/
👉 Функция wait_for() модуля asyncio в Python.
📝 Функция wait_for() модуля asyncio ждет, пока объект ожидания aw завершится с таймаутом timeout. Функция будет ждать до тех пор, пока объект Future не будет фактически отменен, поэтому общее время ожидания может превысить таймаут.
🌐 https://docs-python.ru/standart-library/modul-asyncio-python/funktsija-wait-for-modulja-asyncio/
👍2🔥1
🔁⚡Изменение информации.
👉 Обработка группы исключений, оператор except* в Python.
📝 Новое в Python 3.11. Группы исключений используются try/except, как и со всеми другими исключениями. Кроме того, они распознаются оператором except*, которое соответствует их подгруппам на основе типов содержащихся исключений.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/gruppy-iskliuchenii-except/
👉 Обработка группы исключений, оператор except* в Python.
📝 Новое в Python 3.11. Группы исключений используются try/except, как и со всеми другими исключениями. Кроме того, они распознаются оператором except*, которое соответствует их подгруппам на основе типов содержащихся исключений.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/gruppy-iskliuchenii-except/
👍1🔥1
🔁⚡Изменение информации.
👉 Исключения ExceptionGroup и BaseExceptionGroup в Python.
📝 Новое в Python 3.11. Исключения ExceptionGroup и BaseExceptionGroup заключают исключения в последовательность excs. Аргумент msg должен быть строкой. Разница между этими двумя классами заключается в том, что BaseExceptionGroup расширяет BaseException и может обертывать любое исключение, а Exception
🌐 https://docs-python.ru/tutorial/vstroennye-iskljuchenija-interpretator-python/exceptiongroup-baseexceptiongroup/
👉 Исключения ExceptionGroup и BaseExceptionGroup в Python.
📝 Новое в Python 3.11. Исключения ExceptionGroup и BaseExceptionGroup заключают исключения в последовательность excs. Аргумент msg должен быть строкой. Разница между этими двумя классами заключается в том, что BaseExceptionGroup расширяет BaseException и может обертывать любое исключение, а Exception
🌐 https://docs-python.ru/tutorial/vstroennye-iskljuchenija-interpretator-python/exceptiongroup-baseexceptiongroup/
👍3🔥1
🔁⚡Изменение информации.
👉 Класс ProcessPoolExecutor() модуля concurrent.futures в Python.
📝 Класс ProcessPoolExecutor() модуля concurrent.futures использует пул не более чем max_workers ядер процессора для асинхронного выполнения вызовов. Планирует и запускает выполнение рабочих процессов.
🌐 https://docs-python.ru/standart-library/modul-concurrent-futures-python/klass-processpoolexecutor-modulja-concurrent-futures/
👉 Класс ProcessPoolExecutor() модуля concurrent.futures в Python.
📝 Класс ProcessPoolExecutor() модуля concurrent.futures использует пул не более чем max_workers ядер процессора для асинхронного выполнения вызовов. Планирует и запускает выполнение рабочих процессов.
🌐 https://docs-python.ru/standart-library/modul-concurrent-futures-python/klass-processpoolexecutor-modulja-concurrent-futures/
👍2
🔁⚡Изменение информации.
👉 Метод .transform() объектов DataFrame/DataFrameGroupBy в pandas
📝 Методы DataFrame.transform() модуля pandas вызывают функцию func для самостоятельного создания DataFrame/Series с той же формой оси, что и у исходного объекта. Метод .transform() также имеют объекты DataFrameGroupBy и Resampler. Отличие .transform() от .apply() в групповых операциях.
🌐 https://docs-python.ru/packages/modul-pandas-analiz-dannykh-python/transform-dataframegroupby/
👉 Метод .transform() объектов DataFrame/DataFrameGroupBy в pandas
📝 Методы DataFrame.transform() модуля pandas вызывают функцию func для самостоятельного создания DataFrame/Series с той же формой оси, что и у исходного объекта. Метод .transform() также имеют объекты DataFrameGroupBy и Resampler. Отличие .transform() от .apply() в групповых операциях.
🌐 https://docs-python.ru/packages/modul-pandas-analiz-dannykh-python/transform-dataframegroupby/
👍2
🔁⚡Изменение информации.
👉 Анализ логов Nginx модулем pandas в Python.
📝 Материал представляет собой мысли о том как можно подойти к анализу логов Nginx при помощи библиотеки pandas. Для анализа логов Nginx с использованием Pandas в Python можно создать мощный инструмент для мониторинга посещаемости и нагрузки сайта.
🌐 https://docs-python.ru/packages/modul-pandas-analiz-dannykh-python/analiz-logov-nginx/
👉 Анализ логов Nginx модулем pandas в Python.
📝 Материал представляет собой мысли о том как можно подойти к анализу логов Nginx при помощи библиотеки pandas. Для анализа логов Nginx с использованием Pandas в Python можно создать мощный инструмент для мониторинга посещаемости и нагрузки сайта.
🌐 https://docs-python.ru/packages/modul-pandas-analiz-dannykh-python/analiz-logov-nginx/
👏2
Pydoll — это библиотека для автоматизации браузеров на основе Chromium без использования WebDriver, обеспечивающая реалистичное взаимодействие
https://github.com/autoscrape-labs/pydoll
https://github.com/autoscrape-labs/pydoll
GitHub
GitHub - autoscrape-labs/pydoll: Pydoll is a library for automating chromium-based browsers without a WebDriver, offering realistic…
Pydoll is a library for automating chromium-based browsers without a WebDriver, offering realistic interactions. - GitHub - autoscrape-labs/pydoll: Pydoll is a library for automating chromium-base...
👍2
Чтение и запись сжатых JSON-файлов.
Методы сжатия определяются автоматически по имени файла, — это gzip, bz2 и lzma (или xz).
https://github.com/LucaCappelletti94/compress_json?tab=readme-ov-file
Методы сжатия определяются автоматически по имени файла, — это gzip, bz2 и lzma (или xz).
https://github.com/LucaCappelletti94/compress_json?tab=readme-ov-file
GitHub
GitHub - LucaCappelletti94/compress_json: The missing Python utility to read and write compressed JSONs.
The missing Python utility to read and write compressed JSONs. - LucaCappelletti94/compress_json
👍1
🆕🔥Новый материал.
👉 Модуль Tenacity в Python.
📝 Модуль Tenacity - это Python-библиотека, которая помогает повторять выполнение кода, если он завершился ошибкой. Можно настраивать задержки, лимиты попыток, условия повтора. Автоматически обрабатывает временные ошибки. Используется как декоратор
🌐 https://docs-python.ru/packages/modul-tenacity-python/
👉 Модуль Tenacity в Python.
📝 Модуль Tenacity - это Python-библиотека, которая помогает повторять выполнение кода, если он завершился ошибкой. Можно настраивать задержки, лимиты попыток, условия повтора. Автоматически обрабатывает временные ошибки. Используется как декоратор
🌐 https://docs-python.ru/packages/modul-tenacity-python/
🔥3👍1
Niquests — это элегантная и простая HTTP-библиотека для Python, созданная для людей. Она предназначена для замены Requests, которая больше не поддерживается.
Поддерживает HTTP/1.1, HTTP/2 и HTTP/3 "из коробки", без лишних усилий!
https://niquests.readthedocs.io/en/latest/index.html
Niquests стремится быть максимально совместимыми с
Код с модулем
превратится в:
Или просто
Если код зависит от
Поддерживает HTTP/1.1, HTTP/2 и HTTP/3 "из коробки", без лишних усилий!
https://niquests.readthedocs.io/en/latest/index.html
Niquests стремится быть максимально совместимыми с
requests
, и следовательно можно мигрировать в Niquests с минимальными изменениями.Код с модулем
requests
import requests
requests.get(...)
превратится в:
import niquests
niquests.get(...)
Или просто
import niquests as requests
requests.get(...)
Если код зависит от
urllib3.Timeout
или urllib3.Retry
, то можно сделать так:import niquests
from niquests.packages.urllib3 import Timeout
...
urllib3
псевдонимом является niquests.packages.urllib3
. Безопаснее использовать псевдоним, предоставленный Niquests
.👍8🤔1
Модуль gevent позволяет писать асинхронные сетевые приложение использую синхронный API.
Установка
Особенности:
- Быстрый цикл обработки событий на основе
- Облегченные исполнительные модули на основе
- API, который повторно использует концепции из стандартной библиотеки Python (в качестве примеров можно привести
- Совместные сокеты с поддержкой SSL
- Совместные DNS-запросы, выполняемые через
- Утилита Monkey, исправляющая ошибки модулей сторонних производителей для совместной работы
- Серверы TCP / UDP / HTTP
- Поддержка подпроцессов (через
- Пулы потоков
https://pypi.org/project/gevent/
Установка
pip install gevent
Особенности:
- Быстрый цикл обработки событий на основе
libev
или libuv
.- Облегченные исполнительные модули на основе
greenlets
.- API, который повторно использует концепции из стандартной библиотеки Python (в качестве примеров можно привести
events
и queues
).- Совместные сокеты с поддержкой SSL
- Совместные DNS-запросы, выполняемые через
threadpool
, dnspython
или c-ares
.- Утилита Monkey, исправляющая ошибки модулей сторонних производителей для совместной работы
- Серверы TCP / UDP / HTTP
- Поддержка подпроцессов (через
gevent.subprocess
)- Пулы потоков
https://pypi.org/project/gevent/
PyPI
gevent
Coroutine-based network library
👍1
Модуль JMESPath (произносится как "джеймс пат") позволяет декларативно указать, как извлекать элементы из документа JSON.
Установка:
Примеры использования:
Имеем следующий json:
Выражение jmespath
JMESPath также поддерживает ссылки на элементы в списке.
Имеются данные:
Выражение:
Выражение:
Звездочку
Выражение:
В модуле есть функция
Функция
https://github.com/jmespath/jmespath.py
Установка:
pip install jmespath
Примеры использования:
Имеем следующий json:
{"foo": {"bar": "baz"}}
Выражение jmespath
foo.bar
вернет "baz"
.JMESPath также поддерживает ссылки на элементы в списке.
Имеются данные:
{"foo": {"bar": ["one", "two"]}}
Выражение:
foo.bar[0]
вернет "one"
. Также можно ссылаться на все элементы в списке, используя символ звездочки *
, синтаксис:{"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}
Выражение:
foo.bar[*].name
вернет ["one", "two"]
. также поддерживается отрицательная индексация (-1 относится к последнему элементу в списке). Учитывая данные выше, выражение foo.bar[-1].name
вернет "two"
.Звездочку
*
также можно использовать для типов хэшей:{"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}}
Выражение:
foo.*.name
вернет ["one", "two"]
.В модуле есть функция
jmespath.search
, которая работает со структурами данных python.import jmespath
path = jmespath.search('foo.bar', {'foo': {'bar': 'baz'}})
# 'baz'
Функция
search
в качестве аргумента принимает экземпляр jmespath.Options
для управления тем, как оценивается выражение JMESPath. Наиболее распространенный сценарий использования Options для вывода ключей словаря в нужном порядке:import jmespath
# искомую структуру можно
# скомпилировать, подобно модулю `re`
parsed = jmespath.compile('{a: a, b: b}')
parsed.search(mydata,
jmespath.Options(dict_cls=collections.OrderedDict))
https://github.com/jmespath/jmespath.py
GitHub
GitHub - jmespath/jmespath.py: JMESPath is a query language for JSON.
JMESPath is a query language for JSON. Contribute to jmespath/jmespath.py development by creating an account on GitHub.
👍4❤2
🔁⚡Изменение информации.
👉 Класс time() модуля datetime в Python.
📝 Класс time() модуля datetime представляет собой (локальное) время дня, независимое от какого-либо конкретного дня и подлежащее настройке с помощью объекта datetime.tzinfo().
🌐 https://docs-python.ru/standart-library/modul-datetime-python/klass-time-modulja-datetime/
👉 Класс time() модуля datetime в Python.
📝 Класс time() модуля datetime представляет собой (локальное) время дня, независимое от какого-либо конкретного дня и подлежащее настройке с помощью объекта datetime.tzinfo().
🌐 https://docs-python.ru/standart-library/modul-datetime-python/klass-time-modulja-datetime/
👍2
🔁⚡Изменение информации.
👉 Функция starmap() модуля itertools в Python.
📝 Функция starmap() модуля itertools создает итератор, который вычисляет функцию function, используя аргументы, полученные из кортежей в итерируемой последовательности iterable.
🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsija-starmap-modulja-itertools/
👉 Функция starmap() модуля itertools в Python.
📝 Функция starmap() модуля itertools создает итератор, который вычисляет функцию function, используя аргументы, полученные из кортежей в итерируемой последовательности iterable.
🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsija-starmap-modulja-itertools/
👍2
Robyn - это высокопроизводительный, ориентированный на сообщество и удобный для новаторов веб-фреймворк с поддержкой Rust.
Для установки можно просто использовать Pip:
Производительность
Пример использования:
Ознакомьтесь с примерами маршрутов в этом файле.
Robyn совместим со следующими версиями Python:
Python >= 3.9
Рекомендуется использовать последнюю версию Python для достижения наилучшей производительности.
Ссылка: https://robyn.tech/
Для установки можно просто использовать Pip:
pip install robyn
Производительность
Пример использования:
from robyn import Robyn
app = Robyn(file)
@app.get("/")
async def h(request):
return "Hello, world!"
app.start(port=8080)
Ознакомьтесь с примерами маршрутов в этом файле.
Robyn совместим со следующими версиями Python:
Python >= 3.9
Рекомендуется использовать последнюю версию Python для достижения наилучшей производительности.
Ссылка: https://robyn.tech/
Robyn Framework
Robyn - A Fast, Innovator Friendly, and Community Driven Python Web Framework.
Robyn is a fast, innovator-friendly, and community-driven Python web framework.
❤2👍2🔥2
🆕🔥Новый материал.
👉 Строки шаблонов, t-строки в Python
📝 Новое в Python 3.14 Шаблонные строковые литералы (t-строки) являются обобщением f-строк, и используют префикс t вместо префикса f. T-строки вычисляются с новым типом string.templatelib.Template, а не как f-строки в типе str
🌐 https://docs-python.ru/tutorial/operatsii-tekstovymi-strokami-str-python/stroki-shablonov/
👉 Строки шаблонов, t-строки в Python
📝 Новое в Python 3.14 Шаблонные строковые литералы (t-строки) являются обобщением f-строк, и используют префикс t вместо префикса f. T-строки вычисляются с новым типом string.templatelib.Template, а не как f-строки в типе str
🌐 https://docs-python.ru/tutorial/operatsii-tekstovymi-strokami-str-python/stroki-shablonov/
🔥5👍4
🔁⚡Изменение информации.
👉 Метод logger.patch() модуля loguru в Python.
📝 Метод logger.patch() применяет функцию patcher для изменения записи (словарь record), созданной каждым вызовом ведения журнала.
🌐 https://docs-python.ru/packages/modul-loguru-python/funktsiia-logger-patch/
👉 Метод logger.patch() модуля loguru в Python.
📝 Метод logger.patch() применяет функцию patcher для изменения записи (словарь record), созданной каждым вызовом ведения журнала.
🌐 https://docs-python.ru/packages/modul-loguru-python/funktsiia-logger-patch/
👍3