Egy kis- és nagybetűt megkülönböztető környezetben a HTTP_PROXY és a http_proxy két különböző név lehet. A ConfigParser általában kisbetűssé alakítja az opcióneveket, ezért ha mindkettőt az alapértelmezésekbe teszi, azok egyetlen duplikált opcióvá válhatnak.

Ezért a <dict> nevet említő hiba a ConfigParser(defaults=os.environ)-ból származhat, még mielőtt bármilyen proxykapcsolatot megkísérelne.

Ha az alkalmazásnak ebben az elemzőben szándékosan kis- és nagybetűre érzékeny környezetnevekre van szüksége, a betöltésük előtt állítsa be a normalizálási szabályt:

import configparser
import os

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

Így a két írásmód elkülönül. A keresések és a később beolvasott konfiguráció is ezt a szabályt követi. Az interpoláció kikapcsolása azt is megakadályozza, hogy a környezeti értékekben lévő százalékjelek interpolációs szintaxisként legyenek kezelve.

Ha az alkalmazás kis- és nagybetűtől független konfigurációt igényel, válassza ki kifejezetten a kívánt környezeti bemeneteket, és az ütköző írásmódokat az adott kliens proxy szabályai szerint oldja fel, mielőtt átadná őket az elemzőnek.

A strict=False módosítása elfogadja a duplikátumokat, de nem határozza meg, melyik ütköző proxyértéket használja az alkalmazás. Egy véletlen környezeti írásmód eltávolítása akkor lehet helyénvaló, ha nem Ön irányítja az elemzőt; először állapítsa meg, melyik értékre van szüksége az alsóbb kliensnek.

Kapcsolódó cikkek