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

Чат: @opensource_findings_chat
Download Telegram
New issue to wemake-services/django-modern-rest by @sobolevn
Split `rest` app into several django apps
(#171)

Our integration tests need some love.
Please, split this big app into smaller and more managable ones:

• basic parsing can stay there
• openapi should go into its own app
• middleware stuff should go into other app as well
 https://github.com/wemake-services/django-modern-rest/blob/master/django_test_app/server/apps/rest/views.py

Also, make sure that test files are also different in tests/test_integration

#django_modern_rest #help_wanted #good_first_issue #enhancement

sent via relator
New issue to wemake-services/django-modern-rest by @sobolevn
Split code from `middleware.rst` into its own example file
(#186)

We store our examples as independent files, so it would be easier for us to work with them: type checking, linting, etc.

Right now middleware.rst has a lot of code with no examples. We need to create a new example/middleware/<example_name>.py and split the code.

#django_modern_rest #documentation #good_first_issue #help_wanted

sent via relator
New issue to wemake-services/django-modern-rest by @sobolevn
Customize `.. literalinclude` directive to automatically create links to the source files
(#191)

Some examples have a big number of import statements that take around 30%-50% of the whole example. We can use :lines: NUM- to hide imports, but, we still want to show the whole file when needed.

To fix this I propose adding a sphinx custom directive called .. literalincludelinked, which will produce

🖼️Image

Here are some basic examples of how to do something similar:
https://chatgpt.com/share/68ff5943-c07c-8009-8ae1-cc6520b452d7

PRs are very welcome!

#django_modern_rest #documentation #help_wanted #enhancement #good_first_issue

sent via relator
🚀 New issue to ag2ai/faststream by @HelgeKrueger
📝 Bug: additional "Subscribe" in docs (#2617)

Describe the bug

In the sidebar, the subscriber is called "my_subscriberSubscribe" instead of "my_subscriber"

How to reproduce

from faststream import FastStream
from faststream.rabbit import RabbitBroker


broker = RabbitBroker()

@broker.subscriber("queue", title="my_subscriber")
async def test(): ...

app = FastStream(broker)

then run uv run faststream docs serve main:app

Screenshots

🖼️Image#good_first_issue #bug

sent via relator
1
New issue to wemake-services/django-modern-rest by @sobolevn
Validate that controllers with `blueprints` can't have `component_parsers`
(#217)

Otherwise we would do two parsings in a single HTTP request.
This is not good.

Right now this code is possible:

@final
class _ErrorBody(pydantic.BaseModel):
error: int

class _ErrorHandlingBlueprint(
Blueprint[PydanticSerializer],
Body[_ErrorBody], # <- first body parsing
):
def post(self) -> str:
return str(self.parsed_body.error)

class _ErrorHandlingController(
Controller[PydanticSerializer],
Body[dict[str, int]], # <- second body parsing
):
blueprints: ClassVar[Sequence[_BlueprintT]] = [_ErrorHandlingBlueprint]

def get(self) -> int:
return self.parsed_body.get('error', 0)

This must raise a validation exception in ControllerValidator.

We allow endpoints in the final composed controllers, but they must not use any parsing. Like OPTIONS, for example. If users want to have parsed data, then they should create a blueprint.

#django_modern_rest #good_first_issue #enhancement #help_wanted

sent via relator
New issue to wemake-services/django-modern-rest by @sobolevn
Validate that we can't set `Set-Cookie` header and should use `cookies=` instead
(#259)

When using @validate and @modify we must check that no ResponseSpec.headers contain Set-Cookie header description / modification.

If so, we need to raise an error that cookies= parameter must be used instead.

#django_modern_rest #help_wanted #enhancement #good_first_issue

sent via relator
🚀 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
🚀 New issue to ag2ai/faststream by @Sehat1137
📝 Skip relator notification from the dependabot (#2665)


Improve pipeline so that it is not triggered by events from dependabot.

https://github.com/ag2ai/faststream/blob/main/.github/workflows/relator.yaml#L19


#good_first_issue #github_actions #faststream #ag2ai
sent via relator
🤔3