Sa kapaligirang sensitibo sa malaking titik, ang HTTP_PROXY at http_proxy ay maaaring magkaibang pangalan. Karaniwang ginagawang maliit na titik ng ConfigParser ang mga pangalan ng opsyon, kaya ang pagsama sa dalawa sa mga default ay maaaring maging isang doble nang opsyon.

Kaya ang isang error na tumutukoy sa <dict> ay maaaring magmula sa ConfigParser(defaults=os.environ) bago pa man subukan ang anumang koneksyon sa proxy.

Kung sadyang kailangan ng application ang mga pangalan ng environment na sensitibo sa malaking titik sa parser na ito, itakda ang patakaran sa normalisasyon bago ang mga ito ay i-load:

import configparser
import os

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

Sa gayon mananatiling magkahiwalay ang dalawang baybay. Ang mga paghahanap at anumang configuration na babasahin pagkatapos ay sumusunod na rin sa patakarang iyon. Ang pag-off ng interpolation ay pumipigil din na ituring na syntax ng interpolation ang mga porsyentong tanda sa mga halaga ng environment.

Kung kailangan ng application ang configuration na hindi sensitibo sa malaking titik, tahasang piliin ang mga gustong input ng environment at lutasin ang magkakasalungat na baybay ayon sa mga patakaran ng proxy ng client na iyon bago ibigay sa parser.

Ang pagbabago ng strict=False ay tumatanggap ng mga doble ngunit hindi tumutukoy kung aling magkasalungat na halaga ng proxy ang dapat gamitin ng application. Ang pag-alis ng isang aksidenteng baybay ng environment ay maaaring angkop kapag hindi mo kontrolado ang parser; alamin muna kung aling halaga ang kailangan ng downstream na client.

Kaugnay na mga artikulo