Находки в опенсорсе: Python
964 subscribers
4 photos
141 links
Легкие задачки в опенсорсе из мира Python

Чат: @opensource_findings_chat
Download Telegram
Нужно добавить хук на смену темы виджета Gurubase при изменении темы основной документации FastStream

Готовый пример кода для работы с mkdocs уже есть в репозитории Gurubase. Все ссылки – в описании Issue

https://github.com/airtai/faststream/issues/2110

upd: решено

#documentation #faststream
👍5
FastStream снова нужна ваша помощь. Текущая версия документации сильно разбита на фрагменты для того, чтобы их можно было инклудить в разные переводы документации.
Но от идеи с разными переводами отказались, поэтому текущие атомы, которые используются только в одном месте нужно заинлайнить прямо в место использования для повышения удоства работы с исходниками доки.

Файлов много – поэтому принимаются любые PR'ы на любое количетсво файлов) Насколько хватит усидчивости – столько и приносите😅 Проекту действительно нужна ваша помощь, какой бы дурацкой не выглядела задача😢

Подробности есть в описание Issue, а к нему прикреплен даже PR-образец, чтобы было понятно, что ожидается от контрибуторов. Спасибо за внимание!

#documentation #faststream

upd: уже 6 разных контрибуторов влились в движуху

https://github.com/airtai/faststream/issues/2109
👍8🌚3🔥1
Еще одна небольшая правка по документации FastStream – нужно заменить использование f-строк в логировании в примерах кода документации. В Issue приведен конкретный пример, но нужно найти все такие места и исправить их.

https://github.com/airtai/faststream/issues/2122

#documentation #faststream
Оп, а вот и обещанная задачка с кодом по FastStream
Так получилось, что мы упустили поддержку ASGI State в нашей интеграции с FastAPI – нужно это исправлять

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

https://github.com/airtai/faststream/issues/2132

#faststream #asgi
🔥10
https://github.com/ag2ai/faststream/issues/2180

Очень простой Issue на расширение документации об использовании RPC в FastStream. Нужно добавить примеры использования Response классов и того, как должен выглядить subscriber, способный ответить на сообщение

#documentation #faststream
https://github.com/ag2ai/faststream/issues/2222

Юбилейное Issue для особо отчаяных. Интересная задача на тему того, как превратить AsyncAPI рисовалку в полноценный Swagger UI с возможностью отправлять тестовые сообщения через FastStream

Задача простая, но объемная + достаточно неопределенная + нужно будет писать как на TypeScript, так и на Python. Приветствуется высокий уровень агентности. От меня – свобода в путях реализации.

В общем, без особой надежды оставлю это тут – вдруг энтузиасты найдутся😅

#FastStream
😁8👍6
https://github.com/ag2ai/faststream/issues/2091

То самое вайб-код Issue. Кодовая база уже готова, но нужно поресечить, как в итоге HTTP ручки должны выглядеть в спецификации – и написать 5-10 строчек кода + тестик на это

Вся референсная информация есть в Issue

#FastStream
😁15
Изи ишью: 5 минут, зашли и вышли

Нужно просто в тестовых клиентах отфильтровывать тех подписчиков, что еще не запущены.

Нужно подправить все места включения self.broker.subscribers и добавить соответствующий тест

https://github.com/ag2ai/faststream/issues/2053

#faststream
🚀 New issue to ag2ai/faststream by @jsonvot
📝 Bug: The coexistence issue between URL and virtualhost (#2652)


Describe the bug

import asyncio
from faststream.rabbit import RabbitBroker

async def pub():
broker = RabbitBroker('amqp://guest:guest@localhost:5672/', virtualhost='/domestic-aed') # 1

#broker = RabbitBroker('amqp://guest:guest@localhost:5672', virtualhost='//domestic-aed') # 2
#broker = RabbitBroker('amqp://guest:guest@localhost:5672/', virtualhost='//domestic-aed') # 3
#broker = RabbitBroker('amqp://guest:guest@localhost:5672//domestic-aed') # 4

#broker = RabbitBroker('amqp://guest:guest@localhost:5672', virtualhost='/domestic-aed') # 5
async with broker:
await broker.publish(
"Hi!",
queue="test-queue",
exchange="test-exchange"
)
asyncio.run(pub())

In version v0.5.33, the first method works properly, and the trailing slash (/) at the end of the URL cannot be omitted. However, in versions >=0.5.34, due to additional handling of virtualhost, only parameter-based formats like 2, 3, 4 and 5 are supported.
I believe method 5 is the most intuitive and should be handled correctly, but it is currently treated as an invalid format. Using this method will result in the following error:
🖼️Image

Environment
faststream[rabbit]>=0.5.34


#bug #good_first_issue #faststream #ag2ai
sent via relator