ConfigParser DuplicateOptionError me HTTP_PROXY dhe http_proxy
Kuptoni pse HTTP_PROXY dhe http_proxy mund të bashkëjetojnë në një mjedis Linux, por gjithsesi shkaktojnë DuplicateOptionError kur përdoren si vlera të parazgjedhura të ConfigParser.
Në një mjedis që dallon shkronjat e mëdha nga të voglat, HTTP_PROXY dhe http_proxy mund të jenë emra të ndryshëm. ConfigParser zakonisht i kthen emrat e opsioneve në shkronja të vogla, prandaj kalimi i të dyve në vlerat e parazgjedhura mund t'i bashkojë në një opsion të dyfishtë.
Prandaj një gabim që përmend <dict> mund të vijë nga ConfigParser(defaults=os.environ) edhe para se të provohet ndonjë lidhje me përfaqësuesin.
Nëse aplikacioni ka nevojë me qëllim për emra mjedisi që dallojnë shkronjat e mëdha në këtë analizues, vendosni politikën e normalizimit para se t'i ngarkoni:
import configparser
import os
settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})Kështu dy shkrimet mbeten të ndara. Kërkimet dhe çdo konfigurim i lexuar më pas ndjekin gjithashtu këtë politikë. Çaktivizimi i interpolimit pengon gjithashtu që shenjat e përqindjes në vlerat e mjedisit të trajtohen si sintaksë interpolimi.
Nëse aplikacioni kërkon konfigurim që nuk dallon shkronjat e mëdha, zgjidhni shprehimisht hyrjet e mjedisit të dëshiruara dhe zgjidhni shkrimet kontradiktore sipas rregullave të përfaqësuesit të atij klienti para se t'i jepni analizuesit.
Ndryshimi i strict=False pranon dublikatat, por nuk përcakton se cilën vlerë kontradiktore të përfaqësuesit duhet të përdorë aplikacioni. Heqja e një shkrimi aksidental të mjedisit mund të jetë e përshtatshme kur nuk e kontrolloni analizuesin; së pari përcaktoni se çfarë vlere i nevojitet klientit në rrjedhën e poshtme.