
    Ib=                         d Z ddlZddlZddlmZmZ ddlmZmZ ddl	m
Z
mZ ddlmZ  G d d	ej                  e      Z G d
 de      ZdefdefgZy)z(Tornado handlers for api specifications.    N)genweb   )IPythonHandler
APIHandler)utcfromtimestamp	isoformat)maybe_futurec                   <    e Zd Zd Zej
                  d        Zd Zy)APISpecHandlerc                     t         j                  j                  | t        j                  j                  t                     y )N)path)r   StaticFileHandler
initializeosr   dirname__file__selfs    @/usr/lib/python3/dist-packages/notebook/services/api/handlers.pyr   zAPISpecHandler.initialize   s(    ((BGGOOH4M(N    c                 x    | j                   j                  d       t        j                  j	                  | d      S )Nz+Serving api spec (experimental, incomplete)zapi.yaml)logwarningr   r   getr   s    r   r   zAPISpecHandler.get   s.    FG$$((z::r   c                      y)Nztext/x-yaml r   s    r   get_content_typezAPISpecHandler.get_content_type   s    r   N)__name__
__module____qualname__r   r   authenticatedr   r   r   r   r   r   r      s'    O 	; ;r   r   c                   R    e Zd ZdZej
                  ej                  d               Zy)APIStatusHandlerFc              #     K   | j                   j                  dt        d            }t        |      }t	        | j
                  j                               }t        d |D              }t        | j                  j                               }||t        |      |d}| j                  t        j                  |d             y w)Nstartedr   c              3   &   K   | ]	  }|d      yw)connectionsNr   ).0ks     r   	<genexpr>z'APIStatusHandler.get.<locals>.<genexpr>*   s     BQ- 0Bs   )r&   last_activitykernelsr(   T)	sort_keys)settingsr   r   r	   r
   kernel_managerlist_kernelssumapplicationr,   lenfinishjsondumps)r   r&   r-   total_connectionsr,   models         r   r   zAPIStatusHandler.get"   s      --##I/?/BCG$$T%8%8%E%E%GHHB'BB!$"2"2"@"@"BC*7|,	
 	DJJu56s   CCN)	r   r    r!   _track_activityr   r"   r   	coroutiner   r   r   r   r$   r$      s+    O]]7  7r   r$   z/api/spec.yamlz/api/status)__doc__r6   r   tornador   r   base.handlersr   r   notebook._tzr   r	   notebook.utilsr
   r   r   r$   default_handlersr   r   r   <module>rB      sW    .
  	  7 4 'S**N 7z 70 '%& r   