Dans un environnement sensible à la casse, HTTP_PROXY et http_proxy peuvent être deux noms distincts. ConfigParser met normalement les noms d'option en minuscules, si bien que les transmettre tous deux dans ses valeurs par défaut peut les réduire à une seule option dupliquée.

Une erreur mentionnant <dict> peut donc provenir de ConfigParser(defaults=os.environ) avant même qu'une connexion au proxy soit tentée.

Si l'application a délibérément besoin de noms d'environnement sensibles à la casse dans cet analyseur, définissez la politique de normalisation avant de les charger :

import configparser
import os

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

Les deux graphies restent ainsi séparées. Les recherches et toute configuration lue ensuite suivent désormais cette politique. Désactiver l'interpolation empêche aussi les signes de pourcentage des valeurs d'environnement d'être traités comme une syntaxe d'interpolation.

Si l'application exige une configuration insensible à la casse, sélectionnez explicitement les entrées d'environnement voulues et résolvez les graphies en conflit selon les règles de proxy de ce client avant de les transmettre à l'analyseur.

Modifier strict=False accepte les doublons mais ne détermine pas quelle valeur de proxy en conflit l'application doit utiliser. Supprimer une graphie d'environnement accidentelle peut être pertinent lorsque vous ne contrôlez pas l'analyseur ; identifiez d'abord la valeur dont le client en aval a besoin.

Articles similaires