o $aF@sdZddlmZmZmZmZmZmZmZddl m Z ddl m Z m Z ddlmZddlmZddlmZmZddlmZdd lmZdd lmZdd lmZmZdd lmZdd l m!Z!ddl"m#Z#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,ddl-m.Z.ddl/m0Z0m1Z1ddl2m3Z3e(4e5Z6Gdddeee7e7fZ8Gddde8Z9Gddde9Z:Gddde.Z;Gddde&Zd%S)&z sphinx.domains.javascript ~~~~~~~~~~~~~~~~~~~~~~~~~ The JavaScript domain. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. )AnyDictIteratorListOptionalTuplecast)nodes)ElementNode) directives)addnodes)desc_signature pending_xref)Sphinx)Builder)ObjectDescription)DomainObjType)_pseudo_parse_arglist)BuildEnvironment)___)XRefRole)logging)Field GroupedField TypedField)SphinxDirective)make_id make_refnode) OptionSpecc@seZdZUdZdZdZejejdZe e d<de e fddZ ded edeeeffd d Zd eeefded edd fddZded eeefdefddZdddZdddZdedefddZd S)JSObjectz- Description of a JavaScript object. F)noindex noindexentry option_specreturncCsgSNselfr(r(;/usr/lib/python3/dist-packages/sphinx/domains/javascript.pyget_display_prefix5szJSObject.get_display_prefixsigsignodec Cs|}d|vr%|dddkr%|dd\}}|}|dd}n|}d}|jjdd}|jjd}|}z0z |dd\}} Wn tyR|} d }YnwW| }|rb|rbd||g}n |durj|rj|}n| }|ry|ryd||g}w|dur|r|}w|} |rd||g} ||d <||d <| |d <|} | r|t j d d g| R7}d} |r|} n|r|} | rt d d } | dD]}| t ||7} | t dd7} q|| 7}|t d d t ||7}|jr|s|t 7}| |fSt||| |fS) zBreaks down construct signatures Parses out prefix and argument list from construct definition. The namespace and class will be determined by the nesting of domain directives. (N) js:object js:module.moduleobjectfullname)stripsplitenv ref_contextgetrsplit ValueErrorjoinr,r desc_annotation desc_addname desc_sig_namedesc_sig_punctuation desc_name has_argumentsdesc_parameterlistr)r*r-r.memberarglistprefixmod_namename member_prefix member_namer9display_prefix actual_prefixaddNamepr(r(r+handle_signature9sp      zJSObject.handle_signaturename_objNc Cs|jjd}|r |dnd|d}t|j|jjd|}|d|||}||jjjvr=||dvr=|d||jj |t t |j d}|j ||j||dd|jvrs|||} | ru|jd d | |ddfdSdSdS) Nr4r5r6ridsjslocationr$entriessingle)r<r=r>rstatedocumentappend make_old_idrVnote_explicit_targetrJavaScriptDomain get_domain note_objectobjtypeoptionsget_index_text indexnode) r*rUr-r.rLr9node_id old_node_iddomain indextextr(r(r+add_target_and_indexws    zJSObject.add_target_and_index objectnamecCs||\}}|jdkr|std|Std||fS|jdkr$td|S|jdkr/td|S|jdkr   $r"c @sdeZdZdZdZededdddded ed dd dd ed eddddededdddgZ dS) JSCallablezlstriprfind)r*r<rrrrdotr(r(r+ process_link;s     zJSXRefRole.process_linkN) rrrrr boolrrrr(r(r(r+r:s  rc@sHeZdZUdZdZdZeeddeeddeeddeed d eed d eed d dZe e e e e e dZ eddeddeddeeedZiidZeeeeeeefffed<edeeeeeefffddZ d@dededededdf ddZedeeeeefffddZd ededdfd!d"Zd#eddfd$d%Zd&eed'eddfd(d)Z *dAd+ed,ed-ed.ed/ed0edeeeeeefffd1d2Z d+ed3ed4e!d/ed5ed6e"d7e#de$e#fd8d9Z%d+ed3ed4e!d5ed6e"d7e#deeee#ffd:d;Z&de'eeeeeeeffdd?Z)dS)BrazJavaScript language domain.rW JavaScriptrnrmethodmethrorprqattrr7mod)rnrrorprqr7T) fix_parens)rrrorprr)rzmodules initial_datar&cC|jdiS)Nrzrprwr)r(r(r+rzpzJavaScriptDomain.objectsNr9rdrhrYcCsJ||jvr|j|d}tjtd|||||d|jj||f|j|<dS)Nrz.duplicate %s description of %s, other %s in %srX)rzloggerwarningrr<r)r*r9rdrhrYrr(r(r+rcts   zJavaScriptDomain.note_objectcCr)Nrrr)r(r(r+r|rzJavaScriptDomain.modulesrcCs|jj|f|j|<dSr')r<rr)r*rrhr(r(r+rszJavaScriptDomain.note_modulercCs^t|jD]\}\}}}||kr|j|=qt|jD]\}\}}||kr,|j|=qdSr')listrzitemsr)r*rr9 pkg_docnamerh_lrr(r(r+ clear_docszJavaScriptDomain.clear_docdocnames otherdatac Csh|dD]\}\}}}||vr|||f|j|<q|dD]\}\}}||vr1||f|j|<q dS)Nrzr)rrzr) r*rrr9fnrhrdrLrr(r(r+merge_domaindatasz!JavaScriptDomain.merge_domaindatarr<rLrKrMtyp searchorderc Cs|dddkr|dd}g}|r|r|d|||g|r+|d||g|r7|d||g|||dkrD|d}|D] } | |jvrQ| }qH||j|fS)Nz()r5r)r^rAreverserzr>) r*r<rLrKrMrrsearchesnewname search_namer(r(r+find_objs$   zJavaScriptDomain.find_obj fromdocnamebuilderrnodecontnodec Cs`|d}|d} |drdnd} |||| ||| \} } | s#dSt||| d| d|| S)Nr4r3rr2r)r>hasattrrr ) r*r<rrrrrrrLrKrrMrrr(r(r+ resolve_xrefs  zJavaScriptDomain.resolve_xrefc Csb|d}|d}|||||dd\} } | sgSd|| dt||| d| d|| fgS)Nr4r3r2zjs:r)r>rrole_for_objtyper ) r*r<rrrrrrLrKrMrrr(r(r+resolve_any_xrefs  z!JavaScriptDomain.resolve_any_xrefccs6t|jD]\}\}}}|||||dfVqdS)Nr2)rrzr)r*refnamerrhrr(r(r+ get_objectsszJavaScriptDomain.get_objectscCs@|d}|d}|d}|durdSdtd|||gS)Nr4r3 reftargetr5)r>rAfilter)r*rrrKrr(r(r+get_full_qualified_names   z(JavaScriptDomain.get_full_qualified_namer')r)*rrrrrMrrr object_typesrrr"rr rrolesrrrrrpropertyrzrrcrrrrrrintrrrr rrrrrrr(r(r(r+raNs          &"       " raappr&cCs|tdddddS)NbuiltinrT)version env_versionparallel_read_safeparallel_write_safe) add_domainra)rr(r(r+setups rN)?rtypingrrrrrrrdocutilsr docutils.nodesr r docutils.parsers.rstr sphinxr sphinx.addnodesrrsphinx.applicationrsphinx.buildersrsphinx.directivesrsphinx.domainsrrsphinx.domains.pythonrsphinx.environmentr sphinx.localerr sphinx.rolesr sphinx.utilrsphinx.util.docfieldsrrrsphinx.util.docutilsrsphinx.util.nodesrr sphinx.util.typingr! getLoggerrrrr"rrrrrarr(r(r(r+s<$             9 B