B
    öÀ„\®
  ã               @   s~   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddd	d
ddd
dddddd
ddddœZG dd„ deƒZdS )zì
    sphinx.events
    ~~~~~~~~~~~~~

    Sphinx core events.

    Gracefully adapted from the TextPress system by Armin.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Úprint_function)ÚOrderedDictÚdefaultdict)Ú
itervalues)ÚExtensionError)Ú__Ú Zconfigzenv, added, changed, removedÚenvzenv, docnamezenv, docnameszdocname, source textz the doctree before being pickledz&env, read docnames, other env instancezenv, node, contnodezdoctree, docnameZbuilderz"pagename, context, doctree or NoneZ	exception)zbuilder-initedzconfig-initedzenv-get-outdatedzenv-get-updatedzenv-purge-doczenv-before-read-docszenv-check-consistencyzsource-readzdoctree-readzenv-merge-infozmissing-referencezdoctree-resolvedzenv-updatedzhtml-collect-pageszhtml-page-contextzbuild-finishedc               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚEventManagerc             C   s   t  ¡ | _ttƒ| _d| _d S )Nr   )Úcore_eventsÚcopyÚeventsr   r   Ú	listenersÚnext_listener_id)Úself© r   ú,lib/python3.7/site-packages/sphinx/events.pyÚ__init__1   s    

zEventManager.__init__c             C   s(   || j krttdƒ| ƒ‚d| j |< d S )NzEvent %r already presentr   )r   r   r   )r   Únamer   r   r   Úadd7   s    
zEventManager.addc             C   s@   || j krttdƒ| ƒ‚| j}|  jd7  _|| j| |< |S )NzUnknown event name: %sé   )r   r   r   r   r   )r   r   ÚcallbackÚlistener_idr   r   r   Úconnect=   s    
zEventManager.connectc             C   s$   xt | jƒD ]}| |d ¡ qW d S )N)r   r   Úpop)r   r   Zeventr   r   r   Ú
disconnectG   s    zEventManager.disconnectc             G   s.   g }x$t | j| ƒD ]}| ||Ž ¡ qW |S )N)r   r   Úappend)r   r   ÚargsZresultsr   r   r   r   ÚemitL   s    zEventManager.emitc             G   s*   x$| j |f|žŽ D ]}|d k	r|S qW d S )N)r   )r   r   r   Úresultr   r   r   Úemit_firstresultS   s    zEventManager.emit_firstresultN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r    r   r   r   r   r
   0   s   
r
   N)Ú__doc__Z
__future__r   Úcollectionsr   r   Zsixr   Zsphinx.errorsr   Zsphinx.localer   r   Úobjectr
   r   r   r   r   Ú<module>   s,   	