I et miljø som skiller mellom store og små bokstaver kan HTTP_PROXY og http_proxy være forskjellige navn. ConfigParser gjør vanligvis om valgnavn til små bokstaver, så hvis begge føres inn i standardverdiene, kan de bli ett duplisert valg.

En feil som nevner <dict>, kan derfor oppstå fra ConfigParser(defaults=os.environ) før det gjøres forsøk på noen proxyforbindelse.

Hvis applikasjonen med vilje trenger miljønavn som skiller mellom store og små bokstaver i denne parseren, sett normaliseringspolicyen før de lastes:

import configparser
import os

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

Da holdes de to skrivemåtene atskilt. Oppslag og all konfigurasjon som leses etterpå følger nå også denne policyen. Å slå av interpolering hindrer også at prosenttegn i miljøverdier behandles som interpoleringssyntaks.

Hvis applikasjonen krever konfigurasjon uten hensyn til store og små bokstaver, velg de tiltenkte miljøinngangene eksplisitt og løs motstridende skrivemåter i henhold til proxyreglene for den klienten før de gis til parseren.

Endring av strict=False aksepterer duplikater, men avgjør ikke hvilken motstridende proxyverdi applikasjonen skal bruke. Det kan være riktig å fjerne én utilsiktet miljøskrivemåte når du ikke kontrollerer parseren; finn først ut hvilken verdi klienten nedstrøms trenger.

Relaterte artikler