Skip to content

Conversation

@da-maltsev
Copy link
Contributor

@da-maltsev da-maltsev commented May 6, 2025

#815

Simple af ;D

Ну а вообще, по опыту синхро, больше ничего и не надо делать, чтобы сменить рендер класс. Так что вот оно уже рабочее. Локально протестил тоже.

@da-maltsev
Copy link
Contributor Author

@kazqvaizer тегаю, т.к. нет прав звать ревьюера


@nkiryanov, а можешь подсказать, как ты обновлял uv.lock внутри шаблона?
А то у меня жалуется на:
image
И пришлось колхозно заменить name на проходящее валидацию, и после команды уже обратно вернуть

@nkiryanov
Copy link
Contributor

И пришлось колхозно заменить name на проходящее валидацию, и после команды уже обратно вернуть

так и делаю, предполагая что это не частая операция.
Если думаешь что прямо больно могу подумать шо придумать. Один из вариантов сделать makefile который обновит по уму.

@da-maltsev
Copy link
Contributor Author

И пришлось колхозно заменить name на проходящее валидацию, и после команды уже обратно вернуть

так и делаю, предполагая что это не частая операция. Если думаешь что прямо больно могу подумать шо придумать. Один из вариантов сделать makefile который обновит по уму.

Да не, в целом не страшно. Просто думал мало ли, может в uv есть какой-нибудь флаг незадокументированный, чтобы игнорить подобные проверки. Будем тогда так пользоваться

@kazqvaizer
Copy link
Contributor

Вроде бы штука рабочая, но хочется как-то вписать в текущие рендеры и парсеры более явно, подумать, как все скомпоновать вместе, вот, например, тут есть настройка DEFAULT_RENDERER_CLASSES, есть еще вот этот класс, есть парсеры.

У нас сейчас в проекте, например, решили убрать camel case renderer. В этом сетапе легко будет потерять этот orjson оптимизацию, как бы её включить более надежно не через настройку camel_case?

@da-maltsev
Copy link
Contributor Author

Вроде бы штука рабочая, но хочется как-то вписать в текущие рендеры и парсеры более явно, подумать, как все скомпоновать вместе, вот, например, тут есть настройка DEFAULT_RENDERER_CLASSES, есть еще вот этот класс, есть парсеры.

У нас сейчас в проекте, например, решили убрать camel case renderer. В этом сетапе легко будет потерять этот orjson оптимизацию, как бы её включить более надежно не через настройку camel_case?

Можно углубить конечно имеющийся AppJSONRenderer и добавить аналогичный кастомный класс для парсинга. Просто у нас тогда гаранировано эти оба класса будут завязаны на код из двух библиотек. И если захочется отказаться от одной из них, надо будет идти и переписывать сами классы, а не просто свапнуть срочку в конфиге.

Так будет, конечно, надежнее. Да и необходимость лезть в эти рендеры/парсеры вообще очень редкая и если вместо свапа строчки в конфиге надо будет лезть в наши кастомные классы и немного тюнить логику, то это не сильно поднимет сложность проекта.

Я же правильно тебя понял? Тебе ок вариант с кастомными классами под рендер/парсинг? (судя по исходникам другого варианта особо и нет как бы совместить эти две либы, либо как сейчас, либо писать свой класс и там уже лепить франкенштейна)

@kazqvaizer
Copy link
Contributor

Мне ок твой текущий вариант, но если что, можно без переопределения сделать, к примеру, вернуть строку

JSON_CAMEL_CASE = {
    "RENDERER_CLASS": "drf_orjson_renderer.renderers.ORJSONRenderer",
}

И подстраховаться от удаления либы camel case тем, что явно прописать в конфиге дублирующие строчки, как в инструкции написано - https://github.com/brianjbuck/drf_orjson_renderer?tab=readme-ov-file#installation

Насколько я понял доку DRF, там выбор нужного рендерера / парсера из конфига идет по типу контента и сверху вниз по списку, так что не потеряется. Будет ли так лучше?

@da-maltsev
Copy link
Contributor Author

Мне ок твой текущий вариант, но если что, можно без переопределения сделать, к примеру, вернуть строку

JSON_CAMEL_CASE = {

    "RENDERER_CLASS": "drf_orjson_renderer.renderers.ORJSONRenderer",

}

И подстраховаться от удаления либы camel case тем, что явно прописать в конфиге дублирующие строчки, как в инструкции написано - https://github.com/brianjbuck/drf_orjson_renderer?tab=readme-ov-file#installation

Насколько я понял доку DRF, там выбор нужного рендерера / парсера из конфига идет по типу контента и сверху вниз по списку, так что не потеряется. Будет ли так лучше?

Я бы так и сделал, если бы можно было по этому же принципу в camelcase парсер подставить orjson. Но там исходники этого не позволяют. Поэтому решил сделать единообразно parser и render.

Если тебе такой вариант ок - можешь смерджить? :)

@kazqvaizer kazqvaizer merged commit d845bbd into fandsdev:master May 12, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants