As mentioned in #163 (review), I'm a little unhappy with how Config has some client-specific attributes, but not all. IMO it'd be better architecture to have a "global" Config object that exposes client-specific configuration attributes via some sort of dynamic, namespaced mechanism. Sorta like:
class Config:
...
for client_class in CLIENT_CLASSES:
Config.add_client_class(client_class) # This would add attributes from each client in a namespace, e.g. `Config.http_timeout`