170 похожих чатов

Надо почитать про него. А ккак бы вы тогда делали

если надо ранить тесты с другими енвами? Юзали бы дот енв как в сстатье тишкки написано, он не использует ди или есть еще варианты?

20 ответов

4 просмотра

Шта

Создавали бы конфиг в тесте и передавали явно

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
Создавали бы конфиг в тесте и передавали явно

окей, учту. А что если есть вещи что нет в конфиге приложения, но есть в енве, например то что касается промутеуса. Их же все равно надо переопределять

Dmitriy Тiutiunnyk
окей, учту. А что если есть вещи что нет в конфиге...

энв - это только способ доставить конфиг приложения.

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
энв - это только способ доставить конфиг приложени...

да, но я о том что есть вещи которые напрямую не касаются конфига фастапи апки, но они есть в переменных окружеениях и они используются в коде

Dmitriy Тiutiunnyk
да, но я о том что есть вещи которые напрямую не к...

конфиг приложения и конфиг фастапи аппки это разные вещи

Dmitriy Тiutiunnyk
окей, учту. А что если есть вещи что нет в конфиге...

Конфиг содержит (по крайней мере должен) в себе все настройки приложения, он может состоять из разных компонент, это нормально Откуда они - не важно Поэтому при тестировании ты просто меняешь аргументы функции load_config Какой-то такой псевдокод в голову приходит: def load_config(src: str | path.Path | dict, **kwargs): data = get_data(src) for k, v in kwargs: data[k] = v return Config(data)

Const
Конфиг содержит (по крайней мере должен) в себе вс...

Здесь мы указываем откуда брать данные для конфига и кварги для переопределения каких-либо настроек, если нам захотелось (например переопределение через аргументы при запуске из командной строки или при тестировании)

Dmitriy-Тiutiunnyk Автор вопроса
Dmitriy Тiutiunnyk
а функция гет дата у нас как работает?

Например парсит yaml или toml файл конфига Или формирует маппинг из переменных окружения, или совмещает оба варианта Не суть важно как, важна концепция

Dmitriy-Тiutiunnyk Автор вопроса
Const
Например парсит yaml или toml файл конфига Или фор...

по стандарту в фастапи апке у нас читается и лоадитсся конфиг совсем иначе class Settings(BaseSettings): """Application settings cond configs.""" app_name: str = ‘app’ @lru_cache def get_settings() -> Settings: """ Return application settings. :returns: app settings """ return Settings() Не совсем понимаю, как здесь тогда можно применить твою концепцию

Dmitriy Тiutiunnyk
по стандарту в фастапи апке у нас читается и лоади...

В чем проблема подтянуть этот процесс в процесс загрузки общего конфига?

Dmitriy Тiutiunnyk
по стандарту в фастапи апке у нас читается и лоади...

Очевидно, функцию get_settings ты можешь юзать только там где создаешь апп. В тесте же вместо вызова ее ты создашь настройки другим способом. Декоратор lru_cache тут нахрен не нужен, так как функция должна быть вызвана только в одном месте кода однократно

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
Очевидно, функцию get_settings ты можешь юзать тол...

https://fastapi.tiangolo.com/ru/advanced/settings/?h=sett тут в примерах есть такое , вроде стандарт

Dmitriy Тiutiunnyk
по стандарту в фастапи апке у нас читается и лоади...

Так это код, с какого-то репозитория. "Fastapi template"

Dmitriy Тiutiunnyk
https://fastapi.tiangolo.com/ru/advanced/settings/...

1. тианголо говнокодер 2. в примерах варианты что можно придумать с фастапи. Архитектуру прлиожения по ним строить нельзя 3. часть важных вещей размазана по разным разделам, соответсвтенно примеры однобокие или не очень корректные

Tishka17
1. тианголо говнокодер 2. в примерах варианты что ...

Если тианголо говнокодер, то фастапи говнокод?

Vladimir 🍉
Если тианголо говнокодер, то фастапи говнокод?

да, но при этом апи относительно удобное вышло

Tishka17
да, но при этом апи относительно удобное вышло

Если бы оно ещё работало так, как выглядит. Я однажды попробовал существующую апишку портировать на фастапи, а оно громко упало на несложном тайпхинте

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта