@ru_python

Страница 339 из 9768
Sergey
20.02.2016
14:58:00
Пай легко читать, Json понятнее всем. Я храню в пай
Я вот думаю как импортить config.json в нескольких модулях

[Anonymous]
20.02.2016
15:00:12
Он в бездне, я уже не найду (

Не отмечался там поэтому нет в истории

Google
Viktor
20.02.2016
15:05:26
Ой, все

Я затупил

Немного не так прочитал, перепутал

Крч зря наехал, прошу прощения

А чтобы никого не смущать -- удалю свое сообщение, ладно?

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

Sergey
20.02.2016
15:53:49
Первое - антипаттерн
Понимаю. Но как мне импортировать config.json в несколько модулей.

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
import config, а внутри config.py уже ковырять json
т.е. будет что то вида: # config.py cfg = open('config.json', 'r').read() # etc.py import config name = config.cfg['name'] Опять же так себе.

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

Sergey
20.02.2016
16:07:04
покажи, как ты хочешь в etc.py?
import config name = config['name']

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

import config name = config['name']
#etc: from config import g_conf g_conf('name')

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

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

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

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

Pavel
20.02.2016
16:11:30
Да, но опять же. config.py + config.json два файла, по факту для одного и того же, так себе затея.
ну так просто config.py вы тут забраковали, антипатерном обозвали.

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

Viktor
20.02.2016
16:12:24
Sergey
20.02.2016
16:12:27
ну так просто config.py вы тут забраковали, антипатерном обозвали.
Ну по сути так и есть. Конфиги должны хранится в .ini, .json, .yml, .etc, но никак не в .py

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 и наследованием повторяющихся частей?

Viktor
20.02.2016
16:14:21
Чем плох config.py с классами типа Development, Production и наследованием повторяющихся частей?
потому что от такого файла я ожидаю предварительную настройку, и ничего больше

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

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

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

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

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
Приложение какого типа? Демон? Гуи? Если демон, то через что запускается? Какая ос?
linux, приложение - сервис. Запускаем API и сервер для статики. В статике JS код, который делает запросы к API.

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

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

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 и не выё:)

Игорь
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

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
так, 100 символов. как файл хранится символами? что за хрень?
Длина задаётся под название файла, сам файл хранится в на диске или любом другом хранилище. Документацию по диагонали читаешь?

Jungle
20.02.2016
19:18:55
видимо. не нашел этой тонкости в доке.
Ну, сам посуди хранить файлы в БД в поле с типом varchar это нормально?

Страница 339 из 9768