Сделать
Сейчас она используется только для парсинга
Нам нет никакой сложности сделать модуль с нативным
Задача на несколько часов.
https://github.com/wemake-services/django-modern-rest/issues/43
#django_modern_rest
msgspec опциональной зависимостью.Сейчас она используется только для парсинга
json, однако, она может не собраться по какой-то причине.Нам нет никакой сложности сделать модуль с нативным
json для парсинга, если ее нет.Задача на несколько часов.
https://github.com/wemake-services/django-modern-rest/issues/43
#django_modern_rest
GitHub
Do not depend on `msgspec` directly · Issue #43 · wemake-services/django-modern-rest
Right now we always install msgspec directly as the main dependency: django-modern-rest/pyproject.toml Lines 49 to 54 in 25513fd [tool.poetry.dependencies] python = "^3.11" typing_extensi...
👍5
https://github.com/wemake-services/django-modern-rest/issues/47
Супер простая задача: добавить
#django_modern_rest #typing
Супер простая задача: добавить
TypedDict для типизации kwarg'ов.#django_modern_rest #typing
GitHub
Implement `TypedDict` types for `model_dump_kwargs` and `from_python_kwargs` · Issue #47 · wemake-services/django-modern-rest
Right now we just type them as dict, which is not ideal. django-modern-rest/django_modern_rest/plugins/pydantic.py Lines 53 to 61 in 5cf21e6 # TODO: use `TypedDict` model_dump_kwargs: ClassVar[dict...
💘3
New issue to wemake-services/django-modern-rest by @sobolevn
Write tests for "double validation" problem (#85)
We need to be sure that double validation does not happen. Ever.
See what "double validation" is: fastapi/fastapi#3021
To be sure, we need to write tests for it.
Tests would be rather easy to write:
• One for
• One for
• One for raw data return
Also test disabled response validation mode to do 0 validations.
See the attached issue to learn how to make sure that double validation happened.
No matter what - we need to do a 1 or 0 validations.
#django_modern_rest #help_wanted #enhancement #good_first_issue
sent via relator
Write tests for "double validation" problem (#85)
We need to be sure that double validation does not happen. Ever.
See what "double validation" is: fastapi/fastapi#3021
To be sure, we need to write tests for it.
Tests would be rather easy to write:
• One for
@modify• One for
@validate• One for raw data return
Also test disabled response validation mode to do 0 validations.
See the attached issue to learn how to make sure that double validation happened.
No matter what - we need to do a 1 or 0 validations.
#django_modern_rest #help_wanted #enhancement #good_first_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
#django_modern_rest #help_wanted #good_first_issue #enhancement
sent via relator
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
#django_modern_rest #documentation #good_first_issue #help_wanted
sent via relator
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
To fix this I propose adding a sphinx custom directive called
🖼️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
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 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:
This must raise a validation exception in
We allow endpoints in the final composed controllers, but they must not use any parsing. Like
#django_modern_rest #good_first_issue #enhancement #help_wanted
sent via relator
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