En un entorno sensible a mayúsculas y minúsculas, HTTP_PROXY y http_proxy pueden ser nombres distintos. ConfigParser suele convertir los nombres de opción a minúsculas, así que pasar ambos a sus valores predeterminados puede convertirlos en una sola opción duplicada.

Por eso, un error que mencione <dict> puede originarse en ConfigParser(defaults=os.environ) antes de que se intente cualquier conexión con el proxy.

Si la aplicación necesita de forma deliberada nombres de entorno sensibles a mayúsculas en este analizador, fije la política de normalización antes de cargarlos:

import configparser
import os

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

Así las dos grafías permanecen separadas. Las búsquedas y cualquier configuración leída después siguen también esa política. Desactivar la interpolación evita además que los signos de porcentaje de los valores de entorno se traten como sintaxis de interpolación.

Si la aplicación requiere una configuración insensible a mayúsculas, seleccione explícitamente las entradas de entorno deseadas y resuelva las grafías en conflicto según las reglas de proxy de ese cliente antes de pasarlas al analizador.

Cambiar strict=False acepta duplicados, pero no define qué valor de proxy en conflicto debe usar la aplicación. Eliminar una grafía de entorno accidental puede ser adecuado cuando no controla el analizador; primero determine qué valor necesita el cliente posterior.

Artículos relacionados