V okolju, ki razlikuje med velikimi in malimi črkami, sta lahko HTTP_PROXY in http_proxy različni imeni. ConfigParser običajno pretvori imena možnosti v male črke, zato lahko skupno podajanje v privzete vrednosti oba spremeni v eno podvojeno možnost.

Napaka, ki omenja <dict>, lahko zato izvira iz ConfigParser(defaults=os.environ) še preden se poskusi kakršna koli povezava prek posrednika.

Če aplikacija v tem razčlenjevalniku namerno potrebuje imena okolja, občutljiva na velikost črk, nastavite pravilo normalizacije pred njihovim nalaganjem:

import configparser
import os

settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})

Tako ostaneta oba zapisa ločena. Iskanja in vsaka pozneje prebrana konfiguracija zdaj prav tako sledijo temu pravilu. Izklop interpolacije tudi prepreči, da bi se odstotni znaki v vrednostih okolja obravnavali kot sintaksa interpolacije.

Če aplikacija zahteva konfiguracijo, ki ne razlikuje velikih in malih črk, izrecno izberite želene vhode okolja in nasprotujoče si zapise razrešite po pravilih posrednika tega odjemalca, preden jih predate razčlenjevalniku.

Sprememba strict=False sprejme podvojitve, vendar ne določi, katero nasprotujočo vrednost posrednika naj aplikacija uporabi. Odstranitev enega naključnega zapisa okolja je lahko smiselna, kadar razčlenjevalnika ne nadzorujete; najprej ugotovite, katero vrednost potrebuje odjemalec nižje v verigi.

Sorodni članki