Într-un mediu care distinge majusculele de minuscule, HTTP_PROXY și http_proxy pot fi nume diferite. ConfigParser transformă de obicei numele opțiunilor în litere mici, așa că trecerea ambelor în valorile implicite le poate reduce la o singură opțiune duplicată.

Prin urmare, o eroare care menționează <dict> poate proveni din ConfigParser(defaults=os.environ) înainte de a se încerca vreo conexiune prin proxy.

Dacă aplicația are nevoie în mod deliberat de nume de mediu sensibile la majuscule în acest parser, stabiliți politica de normalizare înainte de a le încărca:

import configparser
import os

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

Astfel cele două grafii rămân separate. Căutările și orice configurație citită ulterior urmează acum și ele această politică. Dezactivarea interpolării împiedică și tratarea semnelor de procent din valorile de mediu ca sintaxă de interpolare.

Dacă aplicația necesită o configurație insensibilă la majuscule, selectați explicit intrările de mediu dorite și rezolvați grafii contradictorii conform regulilor de proxy ale acelui client înainte de a le transmite parserului.

Modificarea strict=False acceptă duplicate, dar nu stabilește ce valoare de proxy contradictorie ar trebui să folosească aplicația. Eliminarea unei grafii de mediu accidentale poate fi potrivită când nu controlați parserul; stabiliți mai întâi de ce valoare are nevoie clientul din aval.

Articole similare