გარემოში, რომელიც განასხვავებს დიდ და პატარა ასოებს, HTTP_PROXY და http_proxy შეიძლება სხვადასხვა სახელები იყოს. ConfigParser ჩვეულებრივ ოპციების სახელებს პატარა ასოებად გარდაქმნის, ამიტომ ორივეს ნაგულისხმევებში გადაცემა შეიძლება მათ ერთ დუბლირებულ ოპციად აქციოს.

ამიტომ შეცდომა, რომელიც <dict>-ს ახსენებს, შეიძლება ConfigParser(defaults=os.environ)-დან მოდიოდეს, ჯერ კიდევ პროქსისთან დაკავშირების ცდამდე.

თუ აპლიკაციას ამ პარსერში განზრახ სჭირდება ასოს ზომაზე მგრძნობიარე გარემოს სახელები, მაშინ მათ ჩატვირთვამდე დააყენეთ ნორმალიზაციის პოლიტიკა:

import configparser
import os

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

ასე ორივე ჩანაწერი ცალკე რჩება. ძიებები და შემდგომ წაკითხული ნებისმიერი კონფიგურაცია ახლა ამ პოლიტიკას მიჰყვება. ინტერპოლაციის გამორთვა ასევე ხელს უშლის გარემოს მნიშვნელობებში პროცენტის ნიშნების ინტერპოლაციის სინტაქსად განხილვას.

თუ აპლიკაციას სჭირდება ასოს ზომისგან დამოუკიდებელი კონფიგურაცია, ცალსახად აირჩიეთ სასურველი გარემოს შეყვანები და პარსერისთვის გადაცემამდე გადაწყვიტეთ წინააღმდეგობრივი ჩანაწერები იმ კლიენტის პროქსის წესების მიხედვით.

strict=False-ის შეცვლა დუბლიკატებს იღებს, მაგრამ არ განსაზღვრავს, რომელი წინააღმდეგობრივი პროქსის მნიშვნელობა უნდა გამოიყენოს აპლიკაციამ. ერთი შემთხვევითი გარემოს ჩანაწერის წაშლა შეიძლება მიზანშეწონილი იყოს, როცა პარსერს არ აკონტროლებთ; ჯერ დაადგინეთ, რომელი მნიშვნელობა სჭირდება ქვედა დონის კლიენტს.

დაკავშირებული სტატიები