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

Чат: @opensource_findings_chat
Download Telegram
🚀 New issue to Lancetnik/FastDepends by @carlodri
📝 LICENSE file is missing in source distribution (#220)



#goodfirstissue

sent via relator
😁5
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Endpoint customizations are not tested (#104)

Similar to https://github.com/wemake-services/django-modern-rest/issues/93 we have several important public APIs for Endpoint customization: https://github.com/wemake-services/django-modern-rest/blob/9e1a24deb3a65683f991ebd14465b0b20e0c22b1/djangomodernrest/endpoint.py#L53-L58

But, we never test that they can actually be applied. This is a very simple issue with just 2 extra tests with existing examples from https://github.com/wemake-services/django-modern-rest/pull/95

#helpwanted #goodfirst_issue #enhancement

sent via relator
👍2
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Write a test for custom handle_error and handle_async_error types (#110)

Our endpoints have two methods to handle custom errors: https://github.com/wemake-services/django-modern-rest/blob/17edd60e1d13b88f4ee2c229095c237b1919b415/djangomodernrest/endpoint.py#L118-L132

But, they are not tested to be customized. Please, add two cases with:

1. Async endpoint and handle_async_error that custom errors can be serialized to json the right way

2. Sync endpoint and handle_error with the same logic

#helpwanted #goodfirst_issue #enhancement

sent via relator
🚀 New issue to ag2ai/faststream by @melenudo
📝 Bug: auto_commit is always True in Confluent Kafka (#2610)

Describe the bug

Even if you use the deprecated autocommit subscriber parameter, or if you use the ack_policy parameter with a value other than AckPolicy.ACK_FIRST, the consumer will set enable.auto.commit to True.

How to reproduce

from asyncio import sleep
from pydantic import BaseModel, Field, NonNegativeFloat

from faststream import FastStream, Logger
from faststream.confluent import KafkaBroker


class DataBasic(BaseModel):
data: NonNegativeFloat = Field(
..., examples=[0.5], description="Float data example"
)


broker = KafkaBroker("localhost:9092")
app = FastStream(broker)


@broker.publisher("output_data")
@broker.subscriber("input_data", group_id="my-group", auto_commit=False)
async def on_input_data(msg: DataBasic, logger: Logger) -> DataBasic:
logger.info(msg)
await sleep(20)
return DataBasic(data=msg.data + 1.0)


You can run this snippet (using the deprecated
auto_commit; the same behavior can be observed if you use ack_policy=AckPolicy.ACK).

In Kafka, you will notice that the message is automatically committed before
on_input_data finishes.

You can also debug the code and observe that in the consumer:

https://github.com/ag2ai/faststream/blob/8a4c60bdae02c7632c15ff1a1d15b268da6e095d/faststream/confluent/helpers/client.py#L236

self.config always has the property enable.auto.commit to True


Expected behavior
When use
@subscriber(...,ack_policy=AckPolicy.ACK) the autocommit must be disabled (same behavior for a policy different than AckPolicy.ACK_FIRST)

Observed behavior
enable.auto.commit is always True ignoring subscriber parameters.

Environment

Running FastStream 0.6.2 with CPython 3.12.9 on Darwin


#goodfirstissue #bug

sent via relator
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Figure out why sphinx does not link HttpResponse as a return type (#153)

See https://github.com/wemake-services/django-modern-rest/blob/7aa23316219d4226d7c49435f9b028130f8c5dbc/docs/conf.py#L98-L99

When make -C docs clean html is generated without this line, sphinx produces:

django-modern-rest/django_modern_rest/errors.py:docstring of django_modern_rest.errors.global_error_handler:1: WARNING: py:class reference target not found: django.http.response.HttpResponse [ref.class]
django-modern-rest/django_modern_rest/endpoint.py:docstring of django_modern_rest.endpoint.Endpoint.__call__:1: WARNING: py:class reference target not found: django.http.response.HttpResponse [ref.class]
django-modern-rest/django_modern_rest/endpoint.py:docstring of django_modern_rest.endpoint.Endpoint.handle_async_error:1: WARNING: py:class reference target not found: django.http.response.HttpResponse [ref.class]
django-modern-rest/django_modern_rest/endpoint.py:docstring of django_modern_rest.endpoint.Endpoint.handle_error:1: WARNING: py:class reference target not found: django.http.response.HttpResponse [ref.class]


This does not seem right, because everything is configure: intersphinx, imports, etc.

• Links in the form of inline :class: roles are rendered correctly

<img width="721" height="115" alt="Image" src="https://github.com/user-attachments/assets/91a0e5ee-90de-4e04-ae52-58514cc275f4" />

• The link in the annotations is not generated

<img width="737" height="377" alt="Image" src="https://github.com/user-attachments/assets/9ab218c1-0153-45f4-836f-e2d2eaaec92b" />

#documentation #helpwanted #goodfirst_issue

sent via relator
1
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