o ‰ü?cJã@spddlZddlmZddlmZddlmZddlZddl m Z ddl m Z m Z ddlmZGdd „d eƒZdS) éN)ÚDocumentStructure)ÚServiceDocumenter)ÚDataNotFoundError)ÚBoto3ClientDocumenter)ÚResourceDocumenterÚServiceResourceDocumenter)ÚServiceContextcsdeZdZej ej ej¡d¡Z ‡fdd„Z dd„Z dd„Z dd „Z d d „Zd d „Zdd„Z‡ZS)rÚexamplescsXtƒj||jd||_|j |¡|_d|_|j|j ¡vr%|j  |¡|_gd¢|_ dS)N)Ú service_nameÚsession)Útitleútable-of-contentsÚclientÚ paginatorsÚwaitersúservice-resourceÚ resourcesr ) ÚsuperÚ__init__Ú_sessionÚ_boto3_sessionrÚ_clientÚ_service_resourceÚ _service_nameZget_available_resourcesÚresourceÚsections)Úselfr r ©Ú __class__©úm/private/var/folders/cw/wlscbxl13mj6wd668h7l9g9sllkg5j/T/pip-target-b31awkwq/lib/python/boto3/docs/service.pyrsüzServiceDocumenter.__init__cCs t|j|jdd}| | d¡¡| | d¡¡| | d¡¡| | d¡¡| | d¡¡|j rD|  | d¡¡|  | d ¡¡|  | d ¡¡|  ¡S) ziDocuments an entire service. :returns: The reStructured text of the documented service. Úhtml)Z section_namesÚtargetr r rrrrrr )rrrr Z get_sectionZtable_of_contentsÚ client_apiZ paginator_apiZ waiter_apirÚ_document_service_resourceÚ_document_resourcesÚ_document_examplesZflush_structure)rZ doc_structurerrr Údocument_service4s ÿÿz"ServiceDocumenter.document_servicecCs>d}z| |j¡}Wn tyYnwt|j|ƒ |¡dS©N)Z get_examplesrrrrZdocument_client)rÚsectionr rrr r#Js ÿzServiceDocumenter.client_apicCst|j|jƒ |¡dSr()rrrÚdocument_resource)rr)rrr r$Ssÿ z,ServiceDocumenter._document_service_resourcec CsÀd}|j d¡}| |jd¡}|jjjjj}|dD]C}|d|}|jj j ||t |j|d|ddd}|jj j } g} | D]} |  |¡q>|| d|jiŽ} t| |jƒ | | jj j¡¡qdS)NZfooZ data_loaderz resources-1r)r Zresource_json_definitionsÚ service_modelZservice_waiter_model)Ú resource_nameZsingle_resource_json_definitionZservice_contextr)rZ get_componentZload_service_modelrrÚmetarr+rZresource_factoryZload_from_definitionrÚresource_modelÚ identifiersÚappendrrr*Zadd_new_sectionÚname) rr)Ztemp_identifier_valueÚloaderZjson_resource_modelr+r,r.Z resource_clsr/ÚargsÚ_rrrr r%Xs< ÿ  ÿúýÿ   ÿëz%ServiceDocumenter._document_resourcescCstj tj |j|jd¡¡S)Nz.rst)ÚosÚpathÚrealpathÚjoinÚ EXAMPLE_PATHr)rrrr Ú_get_example_filexsÿz#ServiceDocumenter._get_example_filecCsˆ| ¡}tj |¡rB|j d¡|j ¡| d¡|j ¡|j ¡t|ƒ}| |  ¡¡WdƒdS1s;wYdSdS)NZExamplesz'.. contents:: :local: :depth: 1) r:r5r6ÚisfileÚstyleZh2Únew_lineÚwriteÚopenÚread)rr)Z examples_fileÚfrrr r&}s       "ÿúz$ServiceDocumenter._document_examples)Ú__name__Ú __module__Ú __qualname__r5r6r8ÚdirnameÚboto3Ú__file__r9rr'r#r$r%r:r&Ú __classcell__rrrr rs   r)r5Zbotocore.docs.bcdoc.restdocrZbotocore.docs.servicerZBaseServiceDocumenterZbotocore.exceptionsrrFZboto3.docs.clientrZboto3.docs.resourcerrZ boto3.utilsrrrrr Ús