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 ବଦଳାଇଲେ ନକଲ ସ୍ୱୀକାର ହୁଏ, କିନ୍ତୁ ଆପ୍ଲିକେସନ୍ କେଉଁ ବିରୋଧାଭାସୀ ପ୍ରକ୍ସି ମୂଲ୍ୟ ବ୍ୟବହାର କରିବ ତାହା ନିର୍ଣ୍ଣୟ ହୁଏ ନାହିଁ। ପାର୍ସର ଆପଣଙ୍କ ନିୟନ୍ତ୍ରଣରେ ନ ଥିଲେ ଏକ ଆକସ୍ମିକ ପରିବେଶ ବନାନ ହଟାଇବା ଉଚିତ ହୋଇପାରେ; ପ୍ରଥମେ ନିର୍ଣ୍ଣୟ କରନ୍ତୁ ଡାଉନଷ୍ଟ୍ରିମ୍ କ୍ଲାୟେଣ୍ଟକୁ କେଉଁ ମୂଲ୍ୟ ଦରକାର।