Σε περιβάλλον που διακρίνει πεζά και κεφαλαία, τα 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 δέχεται διπλότυπα, αλλά δεν καθορίζει ποια αντικρουόμενη τιμή διακομιστή μεσολάβησης πρέπει να χρησιμοποιήσει η εφαρμογή. Η αφαίρεση μιας τυχαίας γραφής περιβάλλοντος μπορεί να είναι σκόπιμη όταν δεν ελέγχετε τον αναλυτή· πρώτα προσδιορίστε ποια τιμή χρειάζεται ο πελάτης προς τα κάτω.

Σχετικά άρθρα