Num ambiente que diferencia maiúsculas de minúsculas, HTTP_PROXY e http_proxy podem ser nomes distintos. O ConfigParser normalmente converte os nomes das opções para minúsculas, portanto passar ambos para os padrões pode transformá-los numa única opção duplicada.

Um erro que mencione <dict> pode, então, ter origem em ConfigParser(defaults=os.environ) antes de qualquer tentativa de conexão com o proxy.

Se a aplicação precisa deliberadamente de nomes de ambiente sensíveis a maiúsculas neste analisador, defina a política de normalização antes de carregá-los:

import configparser
import os

settings = configparser.ConfigParser(interpolation=None)
settings.optionxform = str
settings.read_dict({'DEFAULT': dict(os.environ)})

Assim as duas grafias permanecem separadas. As consultas e qualquer configuração lida depois passam também a seguir essa política. Desativar a interpolação também impede que sinais de percentagem nos valores de ambiente sejam tratados como sintaxe de interpolação.

Se a aplicação exige uma configuração insensível a maiúsculas, selecione explicitamente as entradas de ambiente pretendidas e resolva as grafias em conflito segundo as regras de proxy desse cliente antes de as entregar ao analisador.

Alterar strict=False aceita duplicados, mas não define qual valor de proxy em conflito a aplicação deve usar. Remover uma grafia de ambiente acidental pode ser adequado quando não controla o analisador; primeiro determine qual valor o cliente a jusante precisa.

Artigos relacionados