કેસ-સંવેદનશીલ પર્યાવરણમાં 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 બદલવાથી ડુપ્લિકેટ સ્વીકારાય છે, પણ એપ્લિકેશને કયું વિરોધાભાસી પ્રોક્સી મૂલ્ય વાપરવું તે નક્કી થતું નથી. પાર્સર તમારા નિયંત્રણમાં ન હોય ત્યારે એક આકસ્મિક પર્યાવરણ જોડણી દૂર કરવી યોગ્ય હોઈ શકે; પહેલાં નક્કી કરો કે ડાઉનસ્ટ્રીમ ક્લાયન્ટને કયું મૂલ્ય જોઈએ.

સંબંધિત લેખો