3 Bã\T ã@s2ddlZddlmZd dd„Zdd„Zdd„ZdS) éN)Ú merge_dictscCsV|j|iƒ}t||ƒdtj|jdiƒƒi}t||ƒt||ƒ|dk rRt||ƒ|S)NÚ __default__)ÚgetÚresolve_referencesÚcopyÚdeepcopyrÚ_merge_client_retry_config)Zendpoint_prefixZ retry_modelÚ definitionsÚclient_retry_configZservice_configZfinal_retry_config©r úl/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/botocore/botocore/translate.pyÚbuild_retry_configs     r cCs&|jdƒ}|dk r"|d|dd<dS)NZ max_attemptsér)r)Z retry_configr Zmax_retry_attempts_overrider r r r)s  rcCshxb|jƒD]V\}}t|tƒr t|ƒdkrVt|jƒƒddkrV|t|jƒƒd||<q t||ƒq WdS)aJRecursively replace $ref keys. To cut down on duplication, common definitions can be declared (and passed in via the ``definitions`` attribute) and then references as {"$ref": "name"}, when this happens the reference dict is placed with the value from the ``definition`` dict. This is recursively done. rrz$refN)ÚitemsÚ isinstanceÚdictÚlenÚlistÚkeysÚvaluesr)Úconfigr ÚkeyÚvaluer r r r;s   r)N)rZbotocore.utilsrr rrr r r r Ús