나는 ConfigObj 및 Validator를 사용하여 파이썬의 구성 파일을 구문 분석합니다. 나는이 도구를 많이 좋아하지만 configSpec 파일을 사용하여 유효성 검사에 문제가 있습니다.ConfigObj 옵션 유효성 확인
output_mode = option("Verbose", "Terse", "Silent")
나는 사용자가 CV에없는 옵션을 입력하면 내 코드를 알고 싶어 : 나는 값이 통제 어휘 선택하는 강제 옵션() configSpec 유형을 사용하고 있습니다. 내가 무엇을 좋아해야하는 것은, 검사기는이 실패한 이유를 유효성 검증에 실패,하지만 어떤 설정 키 말 보인다에서 :
from configobj import ConfigObj, flatten_errors
from validate import Validator
config = ConfigObj('config.ini', configspec='configspec.ini')
validator = Validator()
results = config.validate(validator)
if results != True:
for (section_list, key, _) in flatten_errors(config, results):
if key is not None:
print 'The "%s" key in the section "%s" failed validation' % (key, ', '.join(section_list))
else:
print 'The following section was missing:%s ' % ', '.join(section_list)
그 코드가 작동을하지만, 키가 검증에 실패한 이유 이유로 수에서,있다 CV에없는 정수 범위에 있지 않습니다. 나는 키 이름을 조사하고 그 키의 실패 사례에 따라 다른 종류의 예외를 제기 할 필요가 없다. 특정 유형의 유효성 검증 오류를 처리하는 더 명확한 방법이 있습니까?
긴 시간에 유래 리더, 처음으로 포스터
이 예를 보았습니까? http://configobj.readthedocs.org/en/latest/configobj.html#flatten-errors? 오류 항목에 메시지가있는 것 같지만 아직 유용하지 않은 것 같습니다. –