私は DRY の大きな支持者であり、CFG
ファイルを共通セクションと環境固有のセクションに分割し、環境セクションを共通セクションから「継承」させたいと考えています。
[generic]
basedir = ~/computational-services/jobs
pattern = Job*
usage-jar = ../lib/usage-logging-client.jar
[dev-test]
age = 7
dirs = [
('%(basedir)s/rundir01', %(age)s, '%(pattern)s', 'cleanupRunDir01'),
('%(basedir)s/linuxNonimmediate', %(age)s, '%(pattern)s', 'cleanupLinuxNonimmediate01'),
]
[prod]
age = 14
dirs = [
('%(basedir)s/rundir01', %(age)s, '%(pattern)s', 'cleanupRunDir01'),
]
現在、次のエラーが発生しています。
ConfigParser.InterpolationMissingOptionError: Bad value substitution:
section: [dev-test]
option : dirs
key : basedir
rawval : [
('%(basedir)s/rundir01', %(age)s, '%(pattern)s', 'cleanupRunDir01'),
('%(basedir)s/linuxNonimmediate', %(age)s, '%(pattern)s', 'cleanupLinuxNonimmediate01'),
]
繰り返しますが、すべてにbasedir
andpattern
を追加すると、次のようになります。[dev-test]
[dev-test]
age = 7
basedir = ~/computational-services/jobs
pattern = Job*
dirs = [
('%(basedir)s/rundir01', %(age)s, '%(pattern)s', 'cleanupRunDir01'),
('%(basedir)s/linuxNonimmediate', %(age)s, '%(pattern)s', 'cleanupLinuxNonimmediate01'),
]
あるセクションのキー/値を別のセクションで使用する方法はありgeneric.basedir
ますgeneric:basedir
か?
ありがとうございました。