o ˆü?cN ã@s4ddlZddlmZ d dd„Zdd„Zdd„ZdS) éN)Ú merge_dictscCsV| |i¡}t||ƒdt | di¡¡i}t||ƒt||ƒ|dur)t||ƒ|S)NÚ __default__)ÚgetÚresolve_referencesÚcopyÚdeepcopyrÚ_merge_client_retry_config)Zendpoint_prefixZ retry_modelÚ definitionsÚclient_retry_configZservice_configZfinal_retry_config©r úm/private/var/folders/cw/wlscbxl13mj6wd668h7l9g9sllkg5j/T/pip-target-b31awkwq/lib/python/botocore/translate.pyÚbuild_retry_configs   ÿ   r cCs*| d¡}|dur|d|dd<dSdS)NZ max_attemptsér)r)Z retry_configr Zmax_retry_attempts_overrider r r r*s  ÿôrcCsd| ¡D]+\}}t|tƒr/t|ƒdkr*t| ¡ƒddkr*|t| ¡ƒd||<qt||ƒqdS)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   ÿ