ConfigParser DuplicateOptionError са HTTP_PROXY и http_proxy
Схватите зашто HTTP_PROXY и http_proxy могу постојати заједно на Linux-у, али ипак изазивају DuplicateOptionError када се користе као подразумеване вредности ConfigParser-а.
У окружењу осетљивом на велика и мала слова HTTP_PROXY и http_proxy могу бити различита имена. ConfigParser обично претвара имена опција у мала слова, па њихово заједничко задавање у подразумеваним вредностима може створити једну дуплирану опцију.
Грешка која помиње <dict> стога може потицати из ConfigParser(defaults=os.environ), пре него што се уопште покуша веза са проксијем.
Ако је апликацији намерно потребно окружење осетљиво на велика и мала слова у овом парсеру, поставите правило нормализације пре него што их учитате:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Тако два правописа остају одвојена. Претраге и свака касније прочитана конфигурација сада такође прате то правило. Искључивање интерполације такође спречава да се знакови процента у вредностима окружења третирају као синтакса интерполације.
Ако апликација захтева конфигурацију неосетљиву на велика и мала слова, изричито изаберите жељене улазе окружења и разрешите противречне правописе према правилима проксија тог клијента пре него што их предате парсеру.
Промена strict=False прихвата дупликате, али не одређује коју противречну прокси вредност апликација треба да користи. Уклањање једног случајног правописа може бити примерено када не контролишете парсер; најпре утврдите која је вредност потребна клијенту низводно.