Docs-Python.ru
963 subscribers
2.73K links
Обновления сайта Docs-Python.ru
Download Telegram
Модуль 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/
👍1
Модуль 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
👍42
🔁Изменение информации.

👉 Класс 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/
👍2
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)


Ознакомьтесь с примерами маршрутов в этом файле.

Robyn совместим со следующими версиями Python:

Python >= 3.9

Рекомендуется использовать последнюю версию Python для достижения наилучшей производительности.

Ссылка: https://robyn.tech/
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/
🔥5👍4
🔁Изменение информации.

👉 Метод logger.patch() модуля loguru в Python.

📝 Метод logger.patch() применяет функцию patcher для изменения записи (словарь record), созданной каждым вызовом ведения журнала.

🌐 https://docs-python.ru/packages/modul-loguru-python/funktsiia-logger-patch/
👍3
🆕🔥Новый материал.

👉 Как использовать подсказку типа @overload в Pythobn

📝 Иногда аргументы и типы в функции зависят друг от друга таким образом, что это невозможно зафиксировать с помощью типов объединения. Базовые подсказки типов не могут описать такие отношения В описанной ситуации можно использовать декоратор @typing.overload

🌐 https://docs-python.ru/standart-library/modul-typing-python/ispolzovat-podskazku-tipa-overload/
👍3❤‍🔥2🔥1🤡1
🆕🔥Новый материал.

👉 Функция monitoring модуля sys в Python.

📝 Пространство имен sys.monitoring обеспечивает доступ к функциям и константам, необходимым для активации и управления мониторингом событий.

🌐 https://docs-python.ru/standart-library/modul-sys-python/funktsiia-monitoring-modulia-sys/
👍3🔥3🥰2
🔁Изменение информации.

👉 Обработка/перехват исключений try/except в Python.

📝 Приемы перехвата ошибок конструкцией try/except. Оператор try может содержать несколько предложений except, чтобы указать обработчики для различных исключений. В этом случае будет выполнен только один обработчик.

🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/obrabotka-iskljuchenij/
👍2
🔁Изменение информации.

👉 Обработка группы исключений, оператор except* в Python.

📝 Новое в Python 3.11. Группы исключений используются try/except, как и со всеми другими исключениями. Кроме того, они распознаются оператором except*, которое соответствует их подгруппам на основе типов содержащихся исключений.

🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/gruppy-iskliuchenii-except/
👍3
🔁Изменение информации.

👉 Аннотации типов в Python

📝 Аннотации типов в Python 3.x являются полностью необязательной информацией метаданных о типах, используемых пользовательскими функциями.Аннотации хранятся в атрибуте функции __annotations__ как словарь и не влияют ни на какую другую часть функции.

🌐 https://docs-python.ru/tutorial/annotatsii-tipov-python/
👍3🔥1
🆕🔥Новый материал.

👉 Улучшения сообщений об ошибках в Python 3.14.

📝 Новое в Python 3.14. Подсказки на ошибки при распаковке, полезные подсказки при обнаружении опечаток в ключевых словах, обнаружении неправильно заковыченных строк, elif операторы, следующие за блоком else. Улучшены сообщения об ошибках при использовании as с несовместимыми целями и т.д.

🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/uluchsheniia-soobshchenii-oshibkakh-14/
👍5🔥2
🔁Изменение информации.

👉 Замена try/finally менеджером контекста.

📝 Класс contextlib.ExitStack() позволяет вместо этого зарегистрировать обратный вызов для выполнения в конце оператора with, а затем позднее принять решение, что с этим обратным вызовом делать.

🌐 https://docs-python.ru/standart-library/modul-contextlib-python/zamena-try-finally-flaga-prodolzhenija-menedzherom-konteksta/
1👍1
🔁Изменение информации.

👉 Инструкция finally, очистка внешних ресурсов в Python.

📝 В Python блок finally используется в конструкции try...except...finally для выполнения кода, который должен быть выполнен вне зависимости от того, произошло ли исключение или нет. Он часто применяется для освобождения ресурсов, таких как файлы, сетевые соединения и т.п.

🌐 https://docs-python.ru/tutorial/oshibki-iskljuchenija-python/ispolzovanie-finally-konstruktsii-try/
🔥3👍1
🆕🔥Новый материал.

👉 Функция pairwise модуля itertools в Python

📝 Функция itertools.pairwise - это удобный инструмент из модуля itertools, появившийся в Python 3.10, который позволяет итерироваться по парам последовательных элементов переданной последовательности.

🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsiia-pairwise-modulia-itertools/
🔥3👍1
🔁Изменение информации.

👉 Функция tee() модуля itertools в Python.

📝 Функция tee() модуля itertools возвращает n одинаковых, независимых итераторов из одной итерации.

🌐 https://docs-python.ru/standart-library/modul-itertools-python/funktsija-tee-modulja-itertools/
👍1🔥1
🔁Изменение информации.

👉 Режимы интерфейса интерпретатора Python.

📝 Конструкция python3 -c <command> - выполняет код в command (может быть одним или несколькими операторами). Конструкция python3 -m <module-name> выполнит содержимое модуля, расположенное в __main__. Конструкция python3 -i <script> выполняет код в script и перейдет в интерактивный режим.

🌐 https://docs-python.ru/tutorial/zapusk-skriptov-python3-komandnoj-stroki/varianty-interfejsa-komandnoj-stroki/
👍2
🔁Изменение информации.

👉 Общие параметры/флаги командной строки Python.

📝 Материал содержит справочную информацию по всем имеющимся параметром командной строки интерпретатора Python, который включает подробное описание каждой из них.

🌐 https://docs-python.ru/tutorial/zapusk-skriptov-python3-komandnoj-stroki/obschie-parametry-flagi-komandnoj-stroki/
🔥1
🔁Изменение информации.

👉 Переменные среды окружения Python.

📝 В разделе описанные переменные среды влияют на поведение Python, они обрабатываются перед параметрами/флагами командной строки, отличными от -E или -I.

🌐 https://docs-python.ru/tutorial/zapusk-skriptov-python3-komandnoj-stroki/peremennye-sredy-okruzhenija/
🔥2👍1