En un entorn sensible a majúscules i minúscules, HTTP_PROXY i http_proxy poden ser noms diferents. ConfigParser normalment converteix els noms d'opció a minúscules, així que passar-los tots dos als valors per defecte pot convertir-los en una sola opció duplicada.

Per tant, un error que esmenti <dict> pot provenir de ConfigParser(defaults=os.environ) abans que es faci cap intent de connexió amb el proxy.

Si l'aplicació necessita deliberadament noms d'entorn sensibles a majúscules en aquest analitzador, definiu la política de normalització abans de carregar-los:

import configparser
import os

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

Així les dues grafies es mantenen separades. Les cerques i qualsevol configuració llegida després també segueixen aquesta política. Desactivar la interpolació també evita que els signes de percentatge dels valors d'entorn es tractin com a sintaxi d'interpolació.

Si l'aplicació requereix una configuració insensible a majúscules, trieu explícitament les entrades d'entorn volgudes i resoleu les grafies en conflicte segons les regles de proxy d'aquell client abans de passar-les a l'analitzador.

Canviar strict=False accepta duplicats, però no defineix quin valor de proxy en conflicte ha d'usar l'aplicació. Eliminar una grafia d'entorn accidental pot ser adequat quan no controleu l'analitzador; primer determineu quin valor necessita el client posterior.

Articles relacionats