When reading configuration from multiple sources (function arguments, environment variables, config files, defaults), implement and preserve a single, explicit precedence order, and ensure user-provided overrides beat environment-derived values.
Apply this consistently:
Example pattern (proxy mounts precedence):
# env_proxies: dict[str, str|None]
proxy_map = {k: None if v is None else Proxy(url=v) for k, v in get_environment_proxies().items()}
proxy_mounts = {
k: None if p is None else AsyncHTTPTransport(proxy=p, **transport_kwargs)
for k, p in proxy_map.items()
}
# User mounts override env-derived mounts
mounts = dict(proxy_mounts)
mounts.update(kwargs.get("mounts", {}))
kwargs["mounts"] = mounts
Enter the URL of a public GitHub repository