U okruženju osjetljivom na velika i mala slova HTTP_PROXY i http_proxy mogu biti različita imena. ConfigParser obično pretvara imena opcija u mala slova, pa njihovo zajedničko zadavanje u zadanim vrijednostima može stvoriti jednu dupliranu opciju.

Greška koja spominje <dict> stoga može poticati iz ConfigParser(defaults=os.environ), prije nego što se uopće pokuša veza s proxyjem.

Ako aplikaciji namjerno trebaju imena okruženja osjetljiva na velika i mala slova u ovom parseru, postavite pravilo normalizacije prije nego što ih učitate:

import configparser
import os

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

Time dva pravopisa ostaju odvojeni. Pretrage i svaka kasnije pročitana konfiguracija sada takođe slijede to pravilo. Isključivanje interpolacije takođe sprječava da se znakovi postotka u vrijednostima okruženja tretiraju kao sintaksa interpolacije.

Ako aplikacija zahtijeva konfiguraciju neosjetljivu na velika i mala slova, izričito odaberite željene ulaze okruženja i razriješite proturječne pravopise prema pravilima proxyja tog klijenta prije nego što ih predate parseru.

Promjena strict=False prihvata duplikate, ali ne određuje koju proturječnu proxy vrijednost aplikacija treba koristiti. Uklanjanje jednog slučajnog pravopisa može biti primjereno kada ne kontrolirate parser; najprije utvrdite koja je vrijednost potrebna klijentu nizvodno.

Povezani članci