HTTP_PROXY ಮತ್ತು http_proxy ಜೊತೆಗೆ ConfigParser DuplicateOptionError
Linux ಪರಿಸರದಲ್ಲಿ HTTP_PROXY ಮತ್ತು http_proxy ಒಟ್ಟಿಗೆ ಇರಬಹುದು, ಆದರೂ ConfigParser ಡೀಫಾಲ್ಟ್ಗಳಾಗಿ ಬಳಸಿದಾಗ DuplicateOptionError ಏಕೆ ಬರುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ.
ಕೇಸ್-ಸಂವೇದಿ ಪರಿಸರದಲ್ಲಿ 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 ಬದಲಾಯಿಸುವುದು ನಕಲುಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ, ಆದರೆ ಅಪ್ಲಿಕೇಶನ್ ಯಾವ ವಿರೋಧಾಭಾಸದ ಪ್ರಾಕ್ಸಿ ಮೌಲ್ಯವನ್ನು ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುವುದಿಲ್ಲ. ಪಾರ್ಸರ್ ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿಲ್ಲದಿದ್ದಾಗ ಆಕಸ್ಮಿಕ ಪರಿಸರ ಕಾಗುಣಿತವೊಂದನ್ನು ತೆಗೆದುಹಾಕುವುದು ಸೂಕ್ತವಾಗಿರಬಹುದು; ಮೊದಲು ಡೌನ್ಸ್ಟ್ರೀಮ್ ಕ್ಲೈಂಟ್ಗೆ ಯಾವ ಮೌಲ್ಯ ಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಿ.