Vidē, kas atšķir lielos un mazos burtus, HTTP_PROXY un http_proxy var būt dažādi nosaukumi. ConfigParser parasti pārveido opciju nosaukumus mazajos burtos, tāpēc abu ievietošana noklusējuma vērtībās var tos pārvērst vienā dublētā opcijā.

Tāpēc kļūda, kas min <dict>, var rasties no ConfigParser(defaults=os.environ) vēl pirms jebkura starpniekservera savienojuma mēģinājuma.

Ja lietojumprogrammai šajā parsētājā apzināti nepieciešami no burtu lieluma atkarīgi vides nosaukumi, iestatiet normalizēšanas politiku pirms to ielādes:

import configparser
import os

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

Tādējādi abi rakstības varianti paliek atdalīti. Meklēšana un jebkura vēlāk nolasītā konfigurācija tagad arī seko šai politikai. Interpolācijas izslēgšana arī neļauj procentu zīmes vides vērtībās uzskatīt par interpolācijas sintaksi.

Ja lietojumprogrammai nepieciešama konfigurācija, kas nav atkarīga no burtu lieluma, skaidri izvēlieties vajadzīgos vides ievadus un atrisiniet pretrunīgos rakstības variantus saskaņā ar attiecīgā klienta starpniekservera noteikumiem, pirms nododat tos parsētājam.

strict=False maiņa pieņem dublikātus, bet nenosaka, kuru pretrunīgo starpniekservera vērtību lietojumprogrammai vajadzētu izmantot. Vienu nejaušu vides rakstības variantu var būt lietderīgi noņemt, ja jūs nevadāt parsētāju; vispirms nosakiet, kāda vērtība nepieciešama lejupstraumes klientam.

Saistītie raksti