Ympäristössä, joka erottaa isot ja pienet kirjaimet, HTTP_PROXY ja http_proxy voivat olla eri nimiä. ConfigParser muuntaa valintojen nimet yleensä pieniksi kirjaimiksi, joten molempien antaminen oletuksiin voi tehdä niistä yhden päällekkäisen valinnan.

Siksi virhe, joka mainitsee <dict>, voi tulla ConfigParser(defaults=os.environ)-kohdasta jo ennen kuin yhtään välityspalvelinyhteyttä yritetään.

Jos sovellus tarvitsee tarkoituksella kirjainkoosta riippuvia ympäristönimiä tässä jäsentimessä, aseta normalisointikäytäntö ennen niiden lataamista:

import configparser
import os

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

Näin kaksi kirjoitusasua pysyvät erillään. Haut ja kaikki myöhemmin luettu kokoonpano noudattavat nyt myös tätä käytäntöä. Interpoloinnin poistaminen käytöstä estää myös prosenttimerkkien käsittelyn interpolointisyntaksina ympäristöarvoissa.

Jos sovellus vaatii kirjainkoosta riippumatonta kokoonpanoa, valitse aiottu ympäristösyötteet nimenomaisesti ja ratkaise ristiriitaiset kirjoitusasut kyseisen asiakkaan välityspalvelinsääntöjen mukaan ennen niiden antamista jäsentimelle.

strict=False-asetuksen muuttaminen hyväksyy päällekkäisyydet mutta ei määritä, mitä ristiriitaista välityspalvelinarvoa sovelluksen tulisi käyttää. Yhden vahingossa syntyneen ympäristömuuttujan poistaminen voi olla asianmukaista, jos et hallitse jäsentintä; selvitä ensin, mitä arvoa alavirran asiakas tarvitsee.

Aiheeseen liittyvät artikkelit