httpx -- http-клиент с интерфейсом как у requests, но поддержкой aiohttp, удобными моделями для url, headers и прочего, возможностью использовать с wsgi/asgi приложениями напрямую (например, для тестов во Flask). Ну и главное, в контрибьютерах нет Кеннета, зато есть авторы Django REST Framework, Sanic и urllib3 (и всё это разные люди). Так что будет очень круто и модно. Например, они хотят скоро зарелизить контекстный менеджер parallel, который работает примерно как trio: внутри контекста создаются и регистрируются запросы, а при выходе из контекста выполняются.
Ну и тут надо про trio тоже рассказать. Это такой фреймворк для async в Python, альтернатива asyncio. Гораздо более дружелюбный и простой. У автора есть статья Timeouts and cancellation for humans, в которой он рассказывает, почему trio выглядит именно так. Именно он автор той статьи Why I'm not collaborating with Kenneth Reitz. А ещё он автор библиотеки для асинхронных http запросов h11, которая как раз и используется в httpx.
#python
Ну и тут надо про trio тоже рассказать. Это такой фреймворк для async в Python, альтернатива asyncio. Гораздо более дружелюбный и простой. У автора есть статья Timeouts and cancellation for humans, в которой он рассказывает, почему trio выглядит именно так. Именно он автор той статьи Why I'm not collaborating with Kenneth Reitz. А ещё он автор библиотеки для асинхронных http запросов h11, которая как раз и используется в httpx.
#python
GitHub
GitHub - encode/httpx: A next generation HTTP client for Python. 🦋
A next generation HTTP client for Python. 🦋. Contribute to encode/httpx development by creating an account on GitHub.
pydantic — валидатор данных с приведением типов. Этакий marshmallow на dataclass'ах (через аннотации типов). Можно задавать кастомные валидаторы для полей. В принципе, это всё, что про него можно сказать, но штука крутая.
starlette — асинхронный web-фреймворк с поддержкой WebSocket, GraphQL, фоновыми задачами и ещё кучей всяких вещей из коробки.
А теперь причина, по которой эти две библиотеки собрались вместе. fastapi — ещё один web-фреймворк, обёртка вокруг pydantic и starlette. Сам генерирует Swagger-документацию, валидацию через pydantic (входные параметры аннотируются как параметры view функции), все фичи starlette, OAuth, JWT, Dependency Injection. В общем, выглядит круто, работает быстро.
#python
starlette — асинхронный web-фреймворк с поддержкой WebSocket, GraphQL, фоновыми задачами и ещё кучей всяких вещей из коробки.
А теперь причина, по которой эти две библиотеки собрались вместе. fastapi — ещё один web-фреймворк, обёртка вокруг pydantic и starlette. Сам генерирует Swagger-документацию, валидацию через pydantic (входные параметры аннотируются как параметры view функции), все фичи starlette, OAuth, JWT, Dependency Injection. В общем, выглядит круто, работает быстро.
#python
GitHub
GitHub - pydantic/pydantic: Data validation using Python type hints
Data validation using Python type hints. Contribute to pydantic/pydantic development by creating an account on GitHub.