o
    i=                     @   s   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	 d	ejeZG d
d deZdefdefgZdS )z(Tornado handlers for api specifications.    N)genweb   )IPythonHandler
APIHandler)utcfromtimestamp	isoformat)maybe_futurec                   @   s*   e Zd Zdd Zejdd Zdd ZdS )APISpecHandlerc                 C   s   t jj| tjtd d S )N)path)r   StaticFileHandler
initializeosr   dirname__file__self r   Y/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/notebook/services/api/handlers.pyr      s   zAPISpecHandler.initializec                 C   s   | j d tj| dS )Nz+Serving api spec (experimental, incomplete)zapi.yaml)logwarningr   r   getr   r   r   r   r      s   zAPISpecHandler.getc                 C   s   dS )Nztext/x-yamlr   r   r   r   r   get_content_type   s   zAPISpecHandler.get_content_typeN)__name__
__module____qualname__r   r   authenticatedr   r   r   r   r   r   r
      s
    
r
   c                   @   s$   e Zd ZdZejejdd ZdS )APIStatusHandlerFc                 c   sv    | j dtd}t|}t| j V }tdd |D }t| j	 }||t
||d}| tj|dd d S )Nstartedr   c                 s   s    | ]}|d  V  qdS )connectionsNr   ).0kr   r   r   	<genexpr>*   s    z'APIStatusHandler.get.<locals>.<genexpr>)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#   modelr   r   r   r   "   s   zAPIStatusHandler.getN)	r   r   r   _track_activityr   r   r   	coroutiner   r   r   r   r   r      s
    r   z/api/spec.yamlz/api/status)__doc__r-   r   tornador   r   base.handlersr   r   notebook._tzr   r   notebook.utilsr	   r   r
   r   default_handlersr   r   r   r   <module>   s    