Полудоступные для редактирования Файлы (например, файлы конфигурации) и управление версиями - лучшие практики?

Нет необходимости сначала преобразовывать значения в NaN. Итак, давайте предположим, что это отправная точка:

np.random.seed(0)
s = pd.Series(np.random.randint(0,100, 50))

Тогда вы можете использовать loc с np.resize :

mask = s > 25
s.loc[mask] = np.resize([10, 20, 30], mask.sum())

в качестве альтернативы , с pd.Series.mask :

s = s.mask(s > 25, np.resize([10, 20, 30], len(s.index)))

Результат:

print(s.head(10))
# 0    10
# 1    20
# 2    30
# 3    10
# 4    20
# 5     9
# 6    30
# 7    21
# 8    10
# 9    20
# dtype: int32

5
задан doppelfish 10 February 2009 в 20:43
поделиться

7 ответов

То, что можно сделать, имеют файл конфигурации по умолчанию, который остается неизменным, если некоторая новая конфигурация не добавляется. Затем у Вас есть другой файл, который переопределяет конфигурации файла по умолчанию.

config.Default.xml
config.User.xml

Только config.Default.xml является источником, которым управляют. config.User.xml содержит только конфигурации, которые отличаются для Вас. Так, скажите, что Вы тестируете на локальном SQL-сервере, Вы помещаете только строку подключения там, и она переопределит конфигурацию. Строка подключения по умолчанию.

Смотрите на.Net Framwork Application Configuration, он делает большинство (если не все) работы для Вас.

12
ответ дан 18 December 2019 в 09:54
поделиться

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

  • settings.xml
  • settings.xml-выпуск

Оба файла содержат те же ключи, но каждый содержит значения 'dev', и другой содержит значения, которые мы ожидаем развертывать и редактироваться в поле.

3
ответ дан 18 December 2019 в 09:54
поделиться

Мы храним подобные файлы в нашей системе управления исходным кодом и имеем различные папки для среды, для которой мы создаем.

Таким образом, мы имеем:

Dev
Test
Live

Существуют подпапки под ними для другой среды определенные файлы.

1
ответ дан 18 December 2019 в 09:54
поделиться

Мы имеем

  • *. (сконфигурируйтесь | xml),
  • *. (сконфигурируйтесь | xml), .cert
  • *. (сконфигурируйтесь | xml), .production

Hudson удаляет начальный файл и развертывает корректный файл для корректной среды (в настоящее время только сертификат).

Это позволяет разработчикам документировать и разрабатывать производство, сертификат и файлы конфигурации уровня разработки независимо и присваивать версию им отдельно в SVN.

1
ответ дан 18 December 2019 в 09:54
поделиться

Я думаю, что принятый ответ хорош, но в зависимости от Ваших требований, он может иметь ограничения.

Мы используем следующий подход. Обратите внимание, что мы - магазин.NET с помощью VS и используем MSBuild (встроенный, общественный и пользовательский) задачи.

  • App.config проигнорирован управлением версиями, но включен в проект.
  • App.default.config является объектом управления версиями и также включенный в проект. Вместо вещей жесткого кодирования, которые могут измениться, например, строки подключения дб, мы используем маркеры вместо этого.

Задача BeforeBuild проекта ищет существование App.config и если не найденный копиями App.default.config к App.config. Кроме того, сервер сборки всегда удаляет App.config, если он существует на сборке CI (гарантирует чистую конфигурацию). Мы также затем используем Сообщество MSBuild задача FileUpdate заменить маркеры соответствующими значениями на основе того, что разрабатывает проект.

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

1
ответ дан 18 December 2019 в 09:54
поделиться

Я был, работают, у нас есть отдельные файлы конфигурации для, развертывается. Таким образом, файлы конфигурации в наших решениях являются версиями разработки, и люди могут изменить их на содержание своей основы. Эти файлы конфигурации никогда не развертываются нигде.

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

0
ответ дан 18 December 2019 в 09:54
поделиться

Для каждого конфигурационного файла x, создайте файл, что Вы делаете регистрацию, названную x.dist, который является распределенной конфигурацией значения по умолчанию. После выезда разработчиков имейте сценарий, который копирует каждый x.dist файл в x, где они могут настроить x так же по мере необходимости. Этот сценарий может быть повторно выполнен для обновления файлов после существенных изменений, или разработчики могут вручную объединиться в их изменениях.

Для развертывания можно зарегистрироваться живых файлах развертывания и иметь сценарии запуска, относятся к ним явно (например, - конфигурируют x.production).

Этот подход используется, например, в том, как Wordpress распределяется (необходимо скопировать шаблон wp-config.php файл), или в проектах разработки, которые используют autoconf (где в configure.ac регистрируются, но файл конфигурации должен быть сгенерирован каждым разработчиком; специальный файл конфигурации создается для распределения в tarballs во время выпуска).

-1
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

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