home.social

#aiohttp — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #aiohttp, aggregated by home.social.

  1. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  2. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  3. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  4. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  5. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  6. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  7. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  8. Опыт разработки picows: самые быстрые вебсокеты для asyncio

    Всем привет! Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio . В этой статье я расскажу, почему вообще появилась ещё одна библиотека для вебсокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio. Предистория В далёком-предалёком 2021 году мне довелось поучаствовать в разработке алготрейдинг-платформы для криптовалютных бирж. Выбор языка пал на Python из-за разнообразия ML-библиотек, возможность быстро собирать прототипы и проверять идеи, отсутствия этапа компиляции и в целом наличия богатой экосистемы. Если какая-то идея взлетит, критичный участок всегда можно оптимизировать, хотя бы частично переписав его на C/C++/Cython.

    habr.com/ru/articles/1025286/

    #websockets #python #asyncio #optimization #client #server #picows #aiohttp #benchmark #low_latency

  9. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  10. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  11. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  12. Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать

    Как я устал дебажить MAX API, отреверсил их вебхуки и отучил Cursor галлюцинировать Когда я писал своего первого более-менее серьезного бота под Max, случилась классика. Я и мой ИИ-ассистент (Cursor) пишем код, строго опираясь на официальную документацию Max API. Запускаю — падает. Сижу по 5-6 итераций, пытаюсь отдебажить базовый функционал, который под ту же Телегу пишется с закрытыми глазами. В какой-то момент меня это достало. Я понял, что проблема не во мне и не в галлюцинациях нейронки. Я просто включил логирование всех входящих POST-запросов и стал дампить реальные вебхуки, которые прилетают от серверов Max. Открыв логи, я понял, почему мы так долго буксовали: то, что написано в документации, и то, что прилетает по факту — это две большие разницы. А слепая привычка писать архитектуру под Telegram Bot API делает только хуже. Различия с официальной документацией Max API (Docs vs Реальность) Вскрываем реальные вебхуки Max API

    habr.com/ru/articles/1005282/

    #python #template #boilerplate #chatbot #aiohttp #asyncio #maxapi #maxmessenger #telegram #telegram_bots

  13. Анализируем MLP сообщество на Пикабу или как я спарсил 65 тысяч постов с Pikabu и построил интерактивный дашборд

    Дело было вечером, делать было нечего... Я, как и многие в IT, периодически просматриваю вакансии, чтобы держать руку на пульсе рынка. И знаете, что бросается в глаза? Огромное количество позиций "Аналитик данных". Хоть это и не моя основная специализация (я больше по ML), теоретическая база у меня есть. И вот я подумал: а как бы мне сделать интересный пет-проект в этой области, чтобы и навыки прокачать, и самому не заскучать?

    habr.com/ru/articles/968106/

    #python #парсинг #data_analysis #streamlit #дэшборд #пикабу #aiohttp #визуализация_данных #петпроект #plotly

  14. Анализируем MLP сообщество на Пикабу или как я спарсил 65 тысяч постов с Pikabu и построил интерактивный дашборд

    Дело было вечером, делать было нечего... Я, как и многие в IT, периодически просматриваю вакансии, чтобы держать руку на пульсе рынка. И знаете, что бросается в глаза? Огромное количество позиций "Аналитик данных". Хоть это и не моя основная специализация (я больше по ML), теоретическая база у меня есть. И вот я подумал: а как бы мне сделать интересный пет-проект в этой области, чтобы и навыки прокачать, и самому не заскучать?

    habr.com/ru/articles/968106/

    #python #парсинг #data_analysis #streamlit #дэшборд #пикабу #aiohttp #визуализация_данных #петпроект #plotly

  15. Анализируем MLP сообщество на Пикабу или как я спарсил 65 тысяч постов с Pikabu и построил интерактивный дашборд

    Дело было вечером, делать было нечего... Я, как и многие в IT, периодически просматриваю вакансии, чтобы держать руку на пульсе рынка. И знаете, что бросается в глаза? Огромное количество позиций "Аналитик данных". Хоть это и не моя основная специализация (я больше по ML), теоретическая база у меня есть. И вот я подумал: а как бы мне сделать интересный пет-проект в этой области, чтобы и навыки прокачать, и самому не заскучать?

    habr.com/ru/articles/968106/

    #python #парсинг #data_analysis #streamlit #дэшборд #пикабу #aiohttp #визуализация_данных #петпроект #plotly

  16. Анализируем MLP сообщество на Пикабу или как я спарсил 65 тысяч постов с Pikabu и построил интерактивный дашборд

    Дело было вечером, делать было нечего... Я, как и многие в IT, периодически просматриваю вакансии, чтобы держать руку на пульсе рынка. И знаете, что бросается в глаза? Огромное количество позиций "Аналитик данных". Хоть это и не моя основная специализация (я больше по ML), теоретическая база у меня есть. И вот я подумал: а как бы мне сделать интересный пет-проект в этой области, чтобы и навыки прокачать, и самому не заскучать?

    habr.com/ru/articles/968106/

    #python #парсинг #data_analysis #streamlit #дэшборд #пикабу #aiohttp #визуализация_данных #петпроект #plotly

  17. The #python library #aiohttp uses #yarl for URLs internally, and yarl normalizes URLs by default. It silently decodes some %-encoded characters in the query string that do not strictly need to be encoded.

    Sounds harmless, but it isn't. Changing the URL breaks any protocol that signs important aspects of a HTTP request for security.

    Took me a while to find this bug. I usually expect an HTTP client library to not silently manipulate the URLs before sending a request. Smarter is not always better

  18. Почему простой парсер не всегда решает задачу: мой опыт интеграции спортивных API

    В рамках собственной системы спортивной аналитики я хотел получить real-time доступ к данным о движении коэффициентов — в частности, с платформы pickingodds.com. У сервиса интересная фича — визуализация графика изменения линии по каждому событию. Это потенциально полезный источник вторичных сигналов (например, для обнаружения аномалий, связанных с резкой коррекцией маркет-мейкеров). Изначальный план был прост: интегрироваться по REST API, выкачивать данные раз в несколько минут, писать в TSDB, использовать далее для анализа и фичей в ML-пайплайнах. На практике же всё быстро ушло в зону нетривиальной оптимизации.

    habr.com/ru/articles/930360/

    #pickingodds #коэффициенты_ставок #асинхронный_парсинг #rate_limiting #aiohttp #Redis #Kafka #TimescaleDB #LightGBM #ML_фильтрация_событий

  19. Асинхронный Telegram бот на PyTelegramBotAPI

    В сети куча туториалов по синхронным ботам и почти ничего по асинхронным. Статья нацелена на новичков в асинхронном программировании в целом и в асинхронных ботах в частности. В этой статье не будет глубокого анализа асинхронности и технических деталей реализации со сложными терминами, только суть и практические примеры.

    habr.com/ru/articles/929990/

    #туториал #асинхронность #python #telebot #telegram #aiohttp

  20. Асинхронный Telegram бот на PyTelegramBotAPI

    В сети куча туториалов по синхронным ботам и почти ничего по асинхронным. Статья нацелена на новичков в асинхронном программировании в целом и в асинхронных ботах в частности. В этой статье не будет глубокого анализа асинхронности и технических деталей реализации со сложными терминами, только суть и практические примеры.

    habr.com/ru/articles/929990/

    #туториал #асинхронность #python #telebot #telegram #aiohttp

  21. Асинхронный Telegram бот на PyTelegramBotAPI

    В сети куча туториалов по синхронным ботам и почти ничего по асинхронным. Статья нацелена на новичков в асинхронном программировании в целом и в асинхронных ботах в частности. В этой статье не будет глубокого анализа асинхронности и технических деталей реализации со сложными терминами, только суть и практические примеры.

    habr.com/ru/articles/929990/

    #туториал #асинхронность #python #telebot #telegram #aiohttp

  22. Асинхронный Telegram бот на PyTelegramBotAPI

    В сети куча туториалов по синхронным ботам и почти ничего по асинхронным. Статья нацелена на новичков в асинхронном программировании в целом и в асинхронных ботах в частности. В этой статье не будет глубокого анализа асинхронности и технических деталей реализации со сложными терминами, только суть и практические примеры.

    habr.com/ru/articles/929990/

    #туториал #асинхронность #python #telebot #telegram #aiohttp

  23. State of client side HTTP in #python

    - stdlib http.client - HTTP/1.1 only, docs recommend to use requests instead.
    - requests - poorly maintained, in 2020 stopped working when servers deprecated older TLS versions. HTTP/1.1 only, sync only
    - #httpx - comparatively slow and API design is driven by compatibility with browsers. Some users plug-in aiohttp for better performance. Supports HTTP/2 but it's discouraged as not optimized.
    - #aiohttp - good API, both client and server but seems more focused on the server side; HTTP/1.1 only.
    - #niquests - async fork of requests with HTTP/2, but uses forked urllib3 with the same package name as the original, which messes up deployment.
    - #aioquic - client & server, HTTP/3 only

    🤦

    #pythonRequests #programming

  24. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  25. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  26. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  27. Оптимизация асинхронного сервиса на Python

    Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса. Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.

    habr.com/ru/companies/ivi/arti

    #python #asyncio #aiohttp #асинхронное_программирование #телеметрия #оптимизация #время_ответа #профилирование #orjson

  28. Я устал от ограничений Strava и написал свой «швейцарский нож» для анализа тренировок на Python и FastAPI

    Всем привет! Я — разработчик и велосипедист, которому надоели ограничения Strava. Знакомы боли: GPS‑треки с «телепортами», платный анализ по зонам и неудобная загрузка сегментов на Garmin? Я решил исправить это и написал свой «швейцарский нож» для анализа тренировок. Под катом — история создания pet‑проекта Peakline на Python, FastAPI и Vanilla JS. Расскажу, как устроен продвинутый FIT‑генератор для гонок с «призраком», как визуализировать исправление «сломанных» GPX‑треков и как заставить график и карту работать в связке. Поделюсь фрагментами кода, архитектурными решениями и подводными камнями при работе с API Strava. Узнать, как это сделано

    habr.com/ru/articles/920402/

    #strava #fastapi #python #garmin #fit #gps #gpx #api #aiohttp

  29. 🚀 aiohttp 3.12.4 is out! 🐛 Bug fix: connector now properly waits for connections to close before returning from close(). Thanks to github.com/atemate! #aiohttp #python github.com/aio-libs/aio...

    Release 3.12.4 · aio-libs/aioh...

  30. aiohttp 3.12.2 is out! Fixes Content-Length header regression for non-GET requests with None body. Now correctly sets to 0. #python #aiohttp github.com/aio-libs/aio...

    Release 3.12.2 · aio-libs/aioh...

  31. Had a great time hacking on @aiohttp.org (@bdraco.org and @webknjaz.me). Got a few new contributors and sirosen lurking in, as well as achimnol the aiosignal maintainer. Looking forward to gathering again tomorrow! us.pycon.org/2025/events/... #aio-libs #aiohttp #Python #PyConUS

  32. Had a great time hacking on @aiohttp (bdraco and @webknjaz).

    Got a few new contributors and @sirosen lurking in, as well as @achimnol the aiomonitor maintainer.

    Looking forward to gathering again tomorrow!

    us.pycon.org/2025/events/dev-s

    -libs

    UPD (May 26): typo correction — s/aiosignal/aiomonitor/

  33. FastOpenAPI: автодокументация OpenAPI для разных фреймворков на Python

    Всем привет! Меня зовут Никита Рыженков, и я хочу поделиться опытом разработки библиотеки FastOpenAPI. Это инструмент, который приносит удобный стиль маршрутизации FastAPI и автоматическую документацию OpenAPI в целый ряд Python-фреймворков. Идея родилась из личной боли: в одном проекте приходилось поддерживать OpenAPI-документацию сразу в нескольких фреймворках, и я устал дублировать решения под каждый из них. Вдохновившись лаконичностью FastAPI, я решил создать унифицированный подход для Flask, AioHttp, Sanic, Falcon, Starlette, Quart, Tornado – назвал его FastOpenAPI​. В этой статье расскажу, какие проблемы решает FastOpenAPI, как он устроен внутри и как им пользоваться с примерами кода под каждый поддерживаемый фреймворк.

    habr.com/ru/articles/903622/

    #python #openapi #flask #falcon #aiohttp #sanic #starlette #tornado #opensourсe #сезон_open_source

  34. Thanks to months of consistent contributions by
    @lysnikolaou, all of the mandatory @aio_libs dependencies of now ship free-threaded variants of !

    This unblocks doing the same in aiohttp eventually!

    Find a minute to thank him, will you?

  35. Лучшие практики создания отказоустойчивых систем

    Разработка отказоустойчивых систем представляет собой важнейшую компетенцию для инженеров, занятых созданием распределённых и масштабируемых приложений. Под отказоустойчивостью понимается способность системы сохранять работоспособность в условиях сбоев отдельных компонентов или недоступности внешних сервисов. В данной статье рассматриваются практики обеспечения устойчивости на уровне программного кода, в частности в контексте серверных приложений, реализованных на языках Python и Java. Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.

    habr.com/ru/articles/896638/

    #python #java #spring_boot #aiohttp #безопасность #отказоустойчивые_системы #отказоустойчивость #чистый_код

  36. Массовая асинхронная обработка запросов с последующей синхронной CPU-bound логикой

    Столкнулись с обработкой огромного числа запросов и сложной логикой? В новой статье показано, как эффективно обрабатывать до 1 000 000 запросов к API, использовать асинхронный подход для быстрого получения данных и параллельно выполнять тяжелые вычисления в отдельных процессах благодаря ProcessPoolExecutor. Узнайте, как совмещать массовый асинхронный ввод-вывод с CPU-bound обработкой, эффективно масштабировать решения и оптимизировать производительность!

    habr.com/ru/articles/869142/

    #asyncio #aiohttp

  37. CW: Tech rabbithole

    Troubleshooting rabbithole of the day:

    • My Unifi Protect metrics exporter no longer works because it crashes on a KeyError
    • The KeyError is actually an unhandled auth error, oops.
    • The auth just fails with no further details. Added plenty more debugging and turns out the #aiohttp session object cookie jar is empty, no auth for me.
    • The Set-Cookie header on the POST call response does have the right token, so login works! But the response cookies is empty, so is the session cookie jar. Hrmph!
    • Figure out behind the scenes it loads the header raw into a http.cookies.SimpleCookie, which when manually replicating indeed silently without error just doesn't load the data! Not great.
    • Turns out it balks if the cookie contains a partitioned argument, just refuses silently to load the cookie.

    [1/2]

  38. FastAPI + APScheduler: Простой пошаговый гайд по созданию асинхронного API для мониторинга валют по расписанию на Python

    Как создать асинхронный API для мониторинга курсов валют на Python? В этом практическом руководстве мы разработаем сервис на FastAPI с интеграцией APScheduler, который будет отслеживать курсы USD и EUR в банках России. Вы узнаете, как реализовать асинхронный парсинг данных, настроить планировщик задач и развернуть приложение в облаке. Проект включает систему аутентификации, фильтрацию данных и REST API — идеальный пример для изучения современной веб-разработки на Python.

    habr.com/ru/companies/amvera/a

    #restapi #fastapi #python_api #sqlalchemy_20 #sqlite3 #aiosqlite #парсинг_данных #асинхронный_парсинг_данных #aiohttp #курс_валют_на_python

  39. ✈️ Going home following the #aiohttp #sprint at @ManGroup hackathon. Got to see two other active maintainers IRL 🎉, and maintainers of other wonderful projects (@tiangolo @jarekpotiuk).

    Met many outstanding contributors and had fun exploring rabbit holes!

    Tnx, Man!

    #python

  40. Off to Man Group hackathon in London to lead an #aiohttp sprint day with two other maintainers (Nick Koston nand Sam Bull).

    Looking forward to seeing a bunch of folks I haven't seen in a while (👋 @tiangolo and @jarekpotiuk).

    #python #opensource

  41. Настраиваем взаимодействие с внутренним API приложения через свой API-proxy

    Что делать, если хочется повзаимодействовать с приложением-мессенджером, но его издатель такой опции в виде API для нас не предусмотрел? Конечно же стоит попробовать себя в качестве джуниор-минус реверс-инженера - всего лишь на уровне перехвата HTTP-запросов с их последующим воспроизведением.

    habr.com/ru/articles/821345/

    #python #api #aiohttp #charles_proxy

  42. aiogram bot для вуза и куча всего остального

    Краткий обзор изнутри нашего технологичного помощника в студенческих тяжбах.Проект для студентов, в котором мы помогаем им получать расписание ,отправлять жалобы и еще много всего.А также показано как это все реализовано с любимой асинхронностью, а точнее aiogram, aiohttp, asyncpg .

    habr.com/ru/articles/820221/

    #aiogram #telegrambot #python #telegram #aiohttp #postgresql #asyncio

  43. One friend of mine wrote a blog post on his @homeassistant setup:

    "Home Assistant helps me survive during missile and drone attacks. Here is how." denysdovhan.com/home-assistant

    #python saving lives IRL y'all!

    #HomeAssistant #IoT #aiohttp #homeautomation

  44. FastAPI + APScheduler: Простой пошаговый гайд по созданию асинхронного API для мониторинга валют по расписанию на Python

    Как создать асинхронный API для мониторинга курсов валют на Python? В этом практическом руководстве мы разработаем сервис на FastAPI с интеграцией APScheduler, который будет отслеживать курсы USD и EUR в банках России. Вы узнаете, как реализовать асинхронный парсинг данных, настроить планировщик задач и развернуть приложение в облаке. Проект включает систему аутентификации, фильтрацию данных и REST API — идеальный пример для изучения современной веб-разработки на Python.

    habr.com/ru/companies/amvera/a

    #restapi #fastapi #python_api #sqlalchemy_20 #sqlite3 #aiosqlite #парсинг_данных #асинхронный_парсинг_данных #aiohttp #курс_валют_на_python

  45. FastAPI + APScheduler: Простой пошаговый гайд по созданию асинхронного API для мониторинга валют по расписанию на Python

    Как создать асинхронный API для мониторинга курсов валют на Python? В этом практическом руководстве мы разработаем сервис на FastAPI с интеграцией APScheduler, который будет отслеживать курсы USD и EUR в банках России. Вы узнаете, как реализовать асинхронный парсинг данных, настроить планировщик задач и развернуть приложение в облаке. Проект включает систему аутентификации, фильтрацию данных и REST API — идеальный пример для изучения современной веб-разработки на Python.

    habr.com/ru/companies/amvera/a

    #restapi #fastapi #python_api #sqlalchemy_20 #sqlite3 #aiosqlite #парсинг_данных #асинхронный_парсинг_данных #aiohttp #курс_валют_на_python