
Sergey
20.02.2016
14:58:00

[Anonymous]
20.02.2016
15:00:12
Он в бездне, я уже не найду (
Не отмечался там поэтому нет в истории

Google

Viktor
20.02.2016
15:05:26
Ой, все
Я затупил
Немного не так прочитал, перепутал
Крч зря наехал, прошу прощения
А чтобы никого не смущать -- удалю свое сообщение, ладно?

[Anonymous]
20.02.2016
15:30:27
А оно все равно на сервере живёт

⠀
20.02.2016
15:53:08

Sergey
20.02.2016
15:53:49

⠀
20.02.2016
15:54:05
Google it

Sergey
20.02.2016
15:54:27
Если нашел в гугле, тут бы не српашивал:)

⠀
20.02.2016
15:55:02
Ищи лучше
Ищи на английском

Google

Pavel
20.02.2016
15:55:16
json.load чтоли потеряли?

Sergey
20.02.2016
16:02:09
В каждом модуле подгружать config.json в переменную, это первое что пришло в голову. Пока что ищу более изящное решение.

Kolyann
20.02.2016
16:03:11
заимпортить в один модуль, который уже простым импортом пихать в остальные

Pavel
20.02.2016
16:03:14
import config, а внутри config.py уже ковырять json

Kolyann
20.02.2016
16:03:57
я так не уверен, что это выполняется автоматически на все
просто если нужно грузить его ВО ВСЕ модули
то мб это проблема архитектуры, я не знаю

Viktor
20.02.2016
16:05:32
Ну раз они делят область видимости
точнее

Sergey
20.02.2016
16:06:05

Pavel
20.02.2016
16:06:30
покажи, как ты хочешь в etc.py?

Viktor
20.02.2016
16:06:33

Sergey
20.02.2016
16:07:04

Viktor
20.02.2016
16:07:09
s/тоже/тож/;s/тоже//;s/тож/тоже/;

Sergey
20.02.2016
16:08:49
то мб это проблема архитектуры, я не знаю
Очень может быть. У меня две части системы, которые по сути одно приложение:
1. Некий модуль который выполняет некие функции, которому нужны из конфига например токены от внешнего API.
2. Это API который предоставляет HTTP интерфейс для использования модуля, ему тоже нужны свои конфиги.

Viktor
20.02.2016
16:09:12
#config
def g_conf(key):
if _conf is None:
read_conf()
return _conf.get(key)
как-то так

Google

Sergey
20.02.2016
16:10:40
как-то так
Да, но опять же. config.py + config.json два файла, по факту для одного и того же, так себе затея.

Viktor
20.02.2016
16:11:08

Sergey
20.02.2016
16:11:11
Возможно есть еще предложения? И зайдем в корень: стоит ли вообще так централизовать конфиг? или проще для каждой части свой.

Viktor
20.02.2016
16:11:18
и в черный ящик

Pavel
20.02.2016
16:11:30

Viktor
20.02.2016
16:11:44

Pavel
20.02.2016
16:12:02
"простое лучше сложного", помните?

Viktor
20.02.2016
16:12:24

Sergey
20.02.2016
16:12:27

Viktor
20.02.2016
16:12:28
:)
только вот .etc уберу

Sergey
20.02.2016
16:13:16

Viktor
20.02.2016
16:13:23
почти неделю не писал
Уже как легаси код какой-то

Pavel
20.02.2016
16:13:24

Artem
20.02.2016
16:13:48
Чем плох config.py с классами типа Development, Production и наследованием повторяющихся частей?

Pavel
20.02.2016
16:14:08

Viktor
20.02.2016
16:14:21

Artem
20.02.2016
16:15:08
Никто не мешает не писать туда чего-то большее

Viktor
20.02.2016
16:15:11
исполняемый файл для хранения конфигов это почти как хардкод по мне

Google

Viktor
20.02.2016
16:15:19

Sergey
20.02.2016
16:16:19
Попробую поковырять англогугл. Если чето найду - отпишу.

Maxim
20.02.2016
16:18:01
О, чати. А есть что-то наподобие nodemon для питона? (при изменении одного из файлов перезапуск процесса)

Viktor
20.02.2016
16:18:12

Sergey
20.02.2016
16:22:20
Самое интересное что, flask, django, fabric плюют на такие вещи и тупо фигачат в .py

Admin
ERROR: S client not available

Dmitry
20.02.2016
16:22:46
В проекте используется БД?

Pavel
20.02.2016
16:22:49
потому что это:
1. просто
2. работает
3. расширяемо

Sergey
20.02.2016
16:23:40

Pavel
20.02.2016
16:24:18

Dmitry
20.02.2016
16:24:25

Sergey
20.02.2016
16:25:18

Dmitry
20.02.2016
16:29:44
Если запускается api через что-то наподобии nginx/gunicorn, то я бы сделал ini, его возможностей должно хватать, если захочется, то переписать на что-то еще не составит проблем, если правильно абстрагироваться от реализации конфига

Pavel
20.02.2016
16:30:31
правильно абстрагироваться от реализации конфига
и не забудьте про конструктор фабрики конфигов!

Sergey
20.02.2016
16:32:04

Dmitry
20.02.2016
16:33:04
Это меньшее из зол. При таком подходе нет выполняемого кода в конфиге и остается авто-комплит/references в приложении, что избавляет от опечаток при вызовах.

Sergey
20.02.2016
16:41:09
Спасибо за предложение.

Pavel
20.02.2016
16:46:46
я вот тут чай пил и всё время вопрос думал: а как связан формат конфигов и способ запуска приложения?

Dmitry
20.02.2016
16:51:49
если через upstart/systemd, то конфиг кладется в /etc/default и потом значения из него передаются в аргументах запускаемому приложению
если докер-контейнер, то лучше всего использовать переменные окружения, если конфигурация большая, то создавать файл с переменными окружения и указывать его при запуске контейнера

Google

Sergey
20.02.2016
16:56:40
Бужу ждать)
Итак, бегло изучил тему.
1. .py не формат файлов конфигурации
2. Использование .json, .ini, .yml дает возможность динамически изменять конфигурацию приложения, без его полного перезапуска
3. Конфигурация должна быть декларативной
4. Разрабы пишут о проблемах при использовании конфига в формате .py. Какие именно проблемы не нашел.
5. Не рекомендуется использовать .json, .yml, т.к. они допускают вложенность, которая создает бардак.
Итог: используем configparser и не выё:)

Viktor
20.02.2016
16:56:57
Спасибо)

Игорь
20.02.2016
16:59:01
.properties решают
Это конечно из джава мира

Viktor
20.02.2016
17:06:53
АХХАХАХАХ
https://github.com/parrotgeek1/amnok/blob/master/README.md#south-korea-is-best-korea
просто 11/10

[Anonymous]
20.02.2016
17:09:10

Viktor
20.02.2016
17:10:03
ЛОЛhttps://twitter.com/beist/status/700057217702047745

Sergey
20.02.2016
17:10:40
Еще нашел аргумент против config.py - есть шанс что из декларативного описания, он превратится в императивный код.

Viktor
20.02.2016
17:26:08
:LOL:
You may contribute actual files by adding it to the "resources" folder. Please note that these files are mostly user-contributed and may be malicious, so do your own homework before running them. If you see something bad we haven't noticed, please open an issue

Jungle
20.02.2016
19:12:48

Whore Amazing
20.02.2016
19:13:43

Jungle
20.02.2016
19:18:55