Docs-Python.ru
الذهاب إلى القناة على Telegram
951
المشتركون
-124 ساعات
-37 أيام
-530 أيام
أرشيف المشاركات
🔁⚡Изменение информации.
👉 Функция tee() модуля itertools в Python.
📝 Функция tee() модуля itertools возвращает n одинаковых, независимых итераторов из одной итерации.
🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsija-tee-modulja-itertools/
🆕🔥Новый материал.
👉 Функция pairwise модуля itertools в Python
📝 Функция itertools.pairwise - это удобный инструмент из модуля itertools, появившийся в Python 3.10, который позволяет итерироваться по парам последовательных элементов переданной последовательности.
🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsiia-pairwise-modulia-itertools/
🔁⚡Изменение информации.
👉 Инструкция finally, очистка внешних ресурсов в Python.
📝 В Python блок finally используется в конструкции try...except...finally для выполнения кода, который должен быть выполнен вне зависимости от того, произошло ли исключение или нет. Он часто применяется для освобождения ресурсов, таких как файлы, сетевые соединения и т.п.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/ispolzovanie-finally-konstruktsii-try/
🔁⚡Изменение информации.
👉 Замена try/finally менеджером контекста.
📝 Класс contextlib.ExitStack() позволяет вместо этого зарегистрировать обратный вызов для выполнения в конце оператора with, а затем позднее принять решение, что с этим обратным вызовом делать.
🌐 https://docs-python.ru/standart-library/modul-contextlib-python/zamena-try-finally-flaga-prodolzhenija-menedzherom-konteksta/
🆕🔥Новый материал.
👉 Улучшения сообщений об ошибках в Python 3.14.
📝 Новое в Python 3.14. Подсказки на ошибки при распаковке, полезные подсказки при обнаружении опечаток в ключевых словах, обнаружении неправильно заковыченных строк, elif операторы, следующие за блоком else. Улучшены сообщения об ошибках при использовании as с несовместимыми целями и т.д.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/uluchsheniia-soobshchenii-oshibkakh-14/
🔁⚡Изменение информации.
👉 Аннотации типов в Python
📝 Аннотации типов в Python 3.x являются полностью необязательной информацией метаданных о типах, используемых пользовательскими функциями.Аннотации хранятся в атрибуте функции __annotations__ как словарь и не влияют ни на какую другую часть функции.
🌐 https://docs-python.ru/tutorial/annotatsii-tipov-python/
🔁⚡Изменение информации.
👉 Обработка группы исключений, оператор except* в Python.
📝 Новое в Python 3.11. Группы исключений используются try/except, как и со всеми другими исключениями. Кроме того, они распознаются оператором except*, которое соответствует их подгруппам на основе типов содержащихся исключений.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/gruppy-iskliuchenii-except/
🔁⚡Изменение информации.
👉 Обработка/перехват исключений try/except в Python.
📝 Приемы перехвата ошибок конструкцией try/except. Оператор try может содержать несколько предложений except, чтобы указать обработчики для различных исключений. В этом случае будет выполнен только один обработчик.
🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/obrabotka-iskljuchenij/
🔜 будем обновляться до 3.14. Пока ещё нет документации по всем библиотекам, НО то что есть будем делать.
🆕🔥Новый материал.
👉 Функция monitoring модуля sys в Python.
📝 Пространство имен sys.monitoring обеспечивает доступ к функциям и константам, необходимым для активации и управления мониторингом событий.
🌐 https://docs-python.ru/standart-library/modul-sys-python/funktsiia-monitoring-modulia-sys/
🆕🔥Новый материал.
👉 Как использовать подсказку типа @overload в Pythobn
📝 Иногда аргументы и типы в функции зависят друг от друга таким образом, что это невозможно зафиксировать с помощью типов объединения. Базовые подсказки типов не могут описать такие отношения В описанной ситуации можно использовать декоратор @typing.overload
🌐 https://docs-python.ru/standart-library/modul-typing-python/ispolzovat-podskazku-tipa-overload/
🔁⚡Изменение информации.
👉 Метод logger.patch() модуля loguru в Python.
📝 Метод logger.patch() применяет функцию patcher для изменения записи (словарь record), созданной каждым вызовом ведения журнала.
🌐 https://docs-python.ru/packages/modul-loguru-python/funktsiia-logger-patch/
🆕🔥Новый материал.
👉 Строки шаблонов, 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/
Robyn - это высокопроизводительный, ориентированный на сообщество и удобный для новаторов веб-фреймворк с поддержкой Rust.
Для установки можно просто использовать Pip:
pip install robyn
Производительность
Пример использования:
from robyn import Robyn
app = Robyn(file)
@app.get("/")
async def h(request):
return "Hello, world!"
app.start(port=8080)
Ссылка: https://robyn.tech/🔁⚡Изменение информации.
👉 Функция starmap() модуля itertools в Python.
📝 Функция starmap() модуля itertools создает итератор, который вычисляет функцию function, используя аргументы, полученные из кортежей в итерируемой последовательности iterable.
🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsija-starmap-modulja-itertools/
🔁⚡Изменение информации.
👉 Класс time() модуля datetime в Python.
📝 Класс time() модуля datetime представляет собой (локальное) время дня, независимое от какого-либо конкретного дня и подлежащее настройке с помощью объекта datetime.tzinfo().
🌐 https://docs-python.ru/standart-library/modul-datetime-python/klass-time-modulja-datetime/
Модуль JMESPath (произносится как "джеймс пат") позволяет декларативно указать, как извлекать элементы из документа JSON.
Установка:
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Модуль gevent позволяет писать асинхронные сетевые приложение использую синхронный API.
Установка
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/Niquests — это элегантная и простая HTTP-библиотека для Python, созданная для людей. Она предназначена для замены Requests, которая больше не поддерживается.
Поддерживает 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.