في بيئة تفرّق بين الأحرف الكبيرة والصغيرة، يمكن أن يكون 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 يقبل التكرار لكنه لا يحدد قيمة الوكيل المتعارضة التي يجب أن يستخدمها التطبيق. وقد يكون حذف إملاء بيئة عرضي مناسبًا عندما لا تتحكم في المحلل؛ حدّد أولًا القيمة التي يحتاجها العميل النهائي.

مقالات ذات صلة